JSON详解

来源:互联网 发布:php手机板块 编辑:程序博客网 时间:2024/06/03 12:29

参考链接:

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}



0 0
原创粉丝点击