J
SON有两种结构,一种是对象,另一种是数组。
(1).对象(object),是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号) 分 隔。 是由{}括起来的,格式例如,{"key1":value1,"key2":value2,"key3":value3,...}。
(2).数组(array) ,是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔,是由[]括起来的。格式例如,[{"key1":value1,"key2":value2,"key3":value3},{"key1":value1,"key2":value2,"key3":value3}...]。
三.JSON解析。
JavaScript中的JSON的解析与序列化
① 通过eval()函数将JSON字符串解析为JavaScript原生值
var str = '[{"name":"james","height":"203","number":"23"}, {"name":"kobe","height":"198","number":"24"}]';
//定义JSON字符串
var oJson = eval(str);
//通过eval()函数解析拿到JavaScript原生值
//接下来便可通过JS进行操作 alert(oJson[0].name);
//james alert(oJson[1].height);
//198
② 通过全局对象JSON的两个方法parse()和stringify()进行操作
parse()可以将JSON字符串转化为JavaScript原生值:
var str = '[{"name":"james","height":"203","number":"23"},{"name":"kobe","height":"198","number":"24"}]';
//定义JSON字符串
var oJson = JSON.parse(str);
//通过JSON对象的parse方法得到该JSON字符串的JavaScript原生值 document.write("姓名:" + oJson[1].name + "<br/>" + "身高:" + oJson[1].height + "cm" + "<br/>" + "球衣号码:" + oJson[1].number);
stringify()可以将原生JavaScript值转换为JSON字符串:
var oJson = [{ name : "james", height : 203, number : 23 },{ name : "kobe", height : 198, number : 24 }];
var jsonStr = JSON.stringify(oJson,['name','number'],4); alert(jsonStr);
JSON.stringify(oJson,['name','number'],4);中的第一个参数表示需要转化的JS对象;第二个参数用于过滤结果,表示只留下name和number,其他的key以及所对应的的value都不要了;第三个参数表示在JSON字符串中保留的缩进数,有缩进时可读性更高,该参数也可以是一个字符串,比如'----',
Java中的json转化
commons-beanutils-1.7.0.jar
commons-lang-2.1.jar
ezmorph-1.0.2.jar
json-lib-1.1-jdk15.jar
List集合转换成json代码
List
list
=
new
ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray
jsonArray2
=
JSONArray
.fromObject( list );
Map集合转换成json代码
Map
map
=
new
HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject
json
=
JSONObject
.fromObject(map);
Bean转换成json代码
SONObject
jsonObject
=
JSONObject
.fromObject(new JsonBean());
数组转换成json代码
boolean[]
boolArray
=
new
boolean[] { true, false, true };
JSONArray
jsonArray1
=
JSONArray
.fromObject(boolArray);
一般数据转换成json代码
JSONArray
jsonArray3
=
JSONArray
.fromObject("['json','is','easy']" );
<p>
[
color
=
red
]response.getWriter().write(jsonArray2.toString());[/color]
</p>
JSONObject jo = new JSONObject();
jo.put("path", path);
response.getWriter().write(jo.toString());
// 把对象转换成json
ObjectMapper om = new ObjectMapper();
om.setSerializationInclusion(Inclusion.NON_NULL);
User user = new User();
user.setUsername("成聪");
user.setPassword("123456");
StringWriter w = new StringWriter();
om.writeValue(w, user);
System.out.println(w.toString());
// 把json转换成对象
User user2 = om.readValue(w.toString(), User.class);
System.out.println(user2.toString());