Json技术

1.JSON对象是一个无序的" ‘ 名称/值‘ 对 " 集合。一个对象以"{" (左括号)开始,"}" (右括号)结束。每个"名称" 后跟一个":"(冒号);" ‘名称/值 ‘ 对之间使用","(逗号)分隔.

列如:{

    "name": "jackson",

    "age":100

}

数组是值(value)的有序集合。一个数组以"["(左中括号)开始,"]"(右中括号)结束。值之间使用","(逗号)分隔。

如:{

    "students":

     [

        {"name":"jackson","age":100},

        {"name":"liming","age":80},

     ]

   }

2.将Object对象通过JsonObject转化成json的字符串。

/**
* @param key
* 表示json字符串的头信息
* @param object
* 是对解析的集合的类型
* @return
*/

JSONObject jsonObject = new JSONObject();  //定义Json对象

jsonObject.put(key, value);

jsonObject.toString();   //将对象转化成json字符串

3.将json字符串通过JsonObject转化成字符串,一般是从服务端提起数据到客户端。分以下几种情况:

注意:        public class Person {

private int id;
                             private String name;
                             private String address;

            ...

}

(1)      当object为person对象时,其对应的json字符串是:{"person":{"address":"beijing","id":1001,"name":"jack"}},则解析json字符串方法如下:

Person person = new Person();

 JSONObject jsonObject = new JSONObject(jsonString);  //通过Json字符串定义一个JsonObject对象。             JSONObject personObject = jsonObject.getJSONObject("person");

person.setId(personObject.getInt("id"));
person.setName(personObject.getString("name"));
person.setAddress(personObject.getString("address"));

(2)      当object为List<Person>对象时,其对应的json字符串是:{"persons":[{"address":"guangxi","id":1001,"name":"jack"},{"address":"guangdong","id":1002,"name":"rose"}]},则解析json字符串方法如下:

List<Person> list = new ArrayList<Person>();

JSONObject jsonObject = new JSONObject(jsonString);
// 返回json的数组
JSONArray jsonArray = jsonObject.getJSONArray(key);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject2 = jsonArray.getJSONObject(i);  // JSONObject getJSONArray(int index)                    

Person person = new Person();                                         //Returns the value at index if it exists and is a JSONArray  @index为数组索引
person.setId(jsonObject2.getInt("id"));
person.setName(jsonObject2.getString("name"));
person.setAddress(jsonObject2.getString("address"));
list.add(person);

(3)      当object为List<String> 对象时,其对应的json字符串是:{"liststring":["beijing","shanghai","hunan"]},则解析json字符串方法如下:

List<String> list = new ArrayList<String>();

JSONObject jsonObject = new JSONObject(jsonString);
JSONArray jsonArray = jsonObject.getJSONArray(key);

for (int i = 0; i < jsonArray.length(); i++) {
String msg = jsonArray.getString(i);                                   //String getString(int index)
list.add(msg);                                                                 //Returns the value at index if it exists, coercing it if necessary.
}

(4)      当object为person对象时,其对应的json字符串是:{"listmap":[{"address":"beijing","name":"jack","id":1001},{"address":"shanghai","name":"rose","id":1002}]},则解析json字符串方法如下:

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

JSONObject jsonObject = new JSONObject(jsonString);
JSONArray jsonArray = jsonObject.getJSONArray(key);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject2 = jsonArray.getJSONObject(i);
Map<String, Object> map = new HashMap<String, Object>();
Iterator<String> iterator = jsonObject2.keys();                            //

Iterator keys()

Returns an iterator of the String names in this object.

while (iterator.hasNext()) {
String json_key = iterator.next();
Object json_value = jsonObject2.get(json_key);
if (json_value == null) {
json_value = "";
}
map.put(json_key, json_value);
}
list.add(map);

json技术讲解完毕!!

时间: 2024-10-13 16:32:05

Json技术的相关文章

谷歌JSON技术--转换成JSON忽略某些属性

公司小项目刚开始.自己编写了一些Util方法 本公司用谷歌的json技术来处理json,通过接收HttpServletRequest 的输入流来转化成实体 pom.xml 如下 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.7</version></dependency>

各个JSON技术的比较

JSON技术的调研报告 一 .各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如

各个JSON技术的比较(Jackson,Gson,Fastjson)的对比

JSON技术的调研报告 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar, 对于复杂类型的转换,json-lib对于json转换成bean还有缺

四种解析JSON技术比较

一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar, 对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如一个类里面会出现

Ajax与JSON技术

Ajax实现简单的验证: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function ajaxValid(){ var xhr

java Json 技术记录

1.Json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections.jar,commons-lang.jar,commons-logging.jar,ezmorph-1.0.6.jar,对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如一个类里面会出现另一个类的list或者map集合,json-lib从json到bea

几种JSON技术的简介和优劣

1. json-libjson-lib最早的也是应用最广泛的json解析工具,缺陷是依赖很多第三方包,json-lib对于复杂类型的转换还有缺陷,比如一个类里面出现另一个类的list或者map集合,json-lib从json到bean的转换就会出现问题.json-lib在功能和性能上面都不能满足现在互联网化的需求.2. JacksonJackson所依赖的jar包较少,简单易用并且性能也要相对高些.而且Jackson社区相对比较活跃,更新速度也比较快.Jackson对于复杂类型的json转换be

json详解

JSON技术 1.json介绍与入门 提示:js继承,js闭包,js原型对象 键值对,格式的数据.类似Map集合的数据结构 properties 集合键值对数据 轻量级:键值对,结构简单 重量级:xml格式,结构复杂 1.1.什么是json 中括号保存数组. 1.2.json数据的格式 键值对: 对象: 数组: 格式讲解: "employee":[ {"username1" : "zhangsan1","age1" : &qu

[转] 各种Json解析工具比较 - json-lib/Jackson/Gson/FastJson

JSON技术的调研报告 一 .各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如