您的位置:首页 > Web前端 > JavaScript

JSON详解

2016-02-03 11:07 615 查看
参考链接:

http://tim1995.iteye.com/blog/36776

Json是为Web应用开发者提供的一种数据交换格式。
同XML或HTML片段相比,JSON提供了更好的简单性和灵活性。
和XML一样,JSON也是基于纯文本的数据格式。
JSON天生是为JavaScript准备的,可以用JSON传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object对象。

JSON能够描述四种简单的类型(字符串、数字、布尔值及null)和两种结构化类型(对象及数组)。


JSON表示一个数组对象:

     使用[]包含所有元素,元素可以是任意value,  如,["abc",123,false,null]

JSON表示Object对象:

对象在json中用{}包含一系列无序的Key-Value键值对表示,实际上此处的Object相当于Java中的Map<String,Object>,而不是Java的Class,注意Key只能用String表示。
如:{"city":"Beijing","street":"HaiDian Road","postcode":100025}
其中value也可以是另一个Object或数组
如:{"name":"Jane","address":
               {"city":"beijing","postcode":100025}
       }

客户端使用 JavaScript处理服务器端传来的JSON格式数据:

function handleJson(){
     var j={"name":"Jane","address":
             {"city","beijing","postcode":100025}
      };
     document.write(j.name);
     document.write(j.address.city);
     document.write(j.address["city"]);
     document.write(j["address"]["city"]);
}

使用JSON-lib在服务器端对JSON字符串和JSON对象进行转换:

如:从页面传到Action中的参数是json字符串,
复杂的json串:[{'name':'a','sex':'m'},{'name':'b','sex':'f'}]
JSONTokenizer token=new JSONTokenizer(jsonString);
JSONArray array=(JSONArray)token.nextValue();
for(int i=0;i<array.length;i++){
     JSONObject obj=array.getJSONObject(i);
     String name=obj.getString("name");
     String sex=obj.getString("sex");
}

简单的json串:{'name':'a','sex':'b'}
JSONObject  jsonobj=JSONObject.fromObject(jsonString);
String name=jsonobj.getString("name");
String sex=jsonobj.getString("sex");

研究json-lib中JSONTokenizer和JSONArray的源码可知:JSONArray会把带有中括号或括号([]或())的字符串解析成一个数组,而把带花括号({})的会解析成一个JSONObject对象.

Ojebct对象或map对象转为JSON:

JsonConfig jsonConfig = JsonUtil.configJson("yyyy-MM-dd");

String str = JSONArray.fromObject(result,jsonConfig).toString();

事例
json字符串:

{IDNAME=8a1780f1407b7e9701407b842e53000d,abcd}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: