Java中Json格式总结
JSON(JavaScript Object Notation) 是一种轻量级的基于文本的数据交换格式。它采用完全独立于语言的文本格式,易于读写同时也易于机器解析和生成(网络传输速率),因此使JSON成为理想的数据交换语言。
数据规则
1. 数据在键值对中
2. 数据由逗号分隔
3. 花括号保存对象
4. 方括号保存数组
5. 数据的书写格式是:名称/值对。
例如{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}
数据格式
1. 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
3. 值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
4. 字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
5. 数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
数据类型
类型 | 描述 |
---|---|
Number | 在JavaScript中的双精度浮点格式 |
String | 双引号的反斜杠转义的Unicode |
Boolean | true 或 false |
Array | 值的有序序列 |
Value | 它可以是一个字符串,一个数字,真的还是假(true/false),空(null )等 |
Object | 无序集合键值对 |
Whitespace | 可以使用任何一对中的令牌 |
null | empty |
Java实体之间的映射
JSON | Java |
---|---|
string | java.lang.String |
number | java.lang.Number |
true|false | ava.lang.Boolean |
null | null |
array | java.util.List |
object | java.util.Map |
类型转换
1. String 转换为JSON对象
public class StringToJSON { public static void main(String[] args) throws JSONException{ //定义JSON字符串 String jsonStr = "{\"id\": 2," + " \"title\": \"json title\", " + "\"config\": {" + "\"width\": 34," + "\"height\": 35," + "}, \"data\": [" + "\"JAVA\", \"JavaScript\", \"PHP\"" + "]}"; //转换成为JSONObject对象 JSONObject jsonObj = new JSONObject(jsonStr); //从JSONObject对象中获取数据 JavaBean bean = new JavaBean(); //根据属性名称获取int型数据; bean.setId(jsonObj.getInt("id")); //根据属性名获取String数据; bean.setTitle(jsonObj.getString("title")); //根据属性名获取JSONObject类 JSONObject config = jsonObj.getJSONObject("config"); bean.setWidth(config.getInt("width")); bean.setHeight(config.getInt("height")); //根据属性名获取JSONArray数组 JSONArray data = jsonObj.getJSONArray("data"); for(int index = 0, length = data.length(); index < length; index++) { } } }
2. JSON对象转换为String字符串
public static void main(String[] args) throws JSONException { //创建JSONObject对象 JSONObject json = new JSONObject(); //向json中添加数据 json.put("username", "wanglihong"); json.put("height", 12.5); json.put("age", 24); //创建JSONArray数组,并将json添加到数组 JSONArray array = new JSONArray(); array.put(json); //转换为字符串 String jsonStr = array.toString(); System.out.println(jsonStr); }
最终输出结果为: [{"username":"wanglihong","height":12.5,"age":24}]
3. 集合转换为JSONArray对象
public static void main(String[] args) throws JSONException {
//初始化ArrayList集合并添加数据
List < String > list = new ArrayList < String > ();
list.add("username");
list.add("age");
list.add("sex");
//初始化HashMap集合并添加数组
Map map = new HashMap();
map.put("bookname", "CSS3实战");
map.put("price", 69.0);
//初始化JSONArray对象,并添加数据
JSONArray array = new JSONArray();
array.put(list);
array.put(map);
//生成的JSON字符串为:[["username","age","sex"],{"price":69,"bookname":"CSS3实战"}]
}
总结
1. 使用基于JavaScript的应用程序,其中包括浏览器扩展和网站
2. 使用JSON格式序列化和结构化的数据传输网络连接
3. 主要用于服务器和Web应用程序之间的数据传输
4. Web服务和API采用JSON格式提供公共数据
5. 可以用来与现代编程语言
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。