json格式的简单转换
JSON:ajax向客户端响应的内容有多个值或是一个对象时,人们提供了一项技术json
json的基本格式是:{"id":1001,"name":"蓝星"},我们直接输出json对象时结果是就是这种格式
可以把json对象转化字符串:String str=json.toString();来得到json对象内的内容;
//json格式的字符串,单个的和数组类型的
String json1="{\"id\":1001,\"name\":\"蓝星\"}";
String json2="[{\"id\":1001,\"name\":\"蓝星\"},"
+ "{\"id\":1001,\"name\":\"蓝星\"},"
+ "{\"id\":1001,\"name\":\"蓝星\"},"
+ "{\"id\":1001,\"name\":\"蓝星\"}]";
System.out.println(json1);
System.out.println(json2);
JSONObject json1=JSONObject.fromObject("对象");
2:把json对象转换为字符串?(注意:json和转化后的字符串输出结果可能相同,但一个是json对象,一个是字符串)
String str=json1.toString();
3:怎样把json对象中的内容输出来
json1={"id":1001,"name":"蓝星"};
person per=(person)json1.toBean(json1, person.class);----把json中的内容转化封装在javabean对象中
System.out.println(per.getName());-----------------------把javabean对象中的值输出来
4:怎样把集合中的内容封装在json对象中;
JSONArray jsonarray=JSONArray.fromObject(list);-------------打印jsonarray输出json格式的数组,list中是一个个的对象
5:把json数组转化为字符串
String array=jsonarray.toString();--------------------------和单个对象一样
6:怎样把json数组内容输出来
Collection coll=jsonarray.toCollction(jsonarray,person.class);---将json中的内容保存在一个集合中
for(person p1:coll){
System.out.println(p1);
}--------------------------------------------------------用循环的方式输出集合中的对象,一定是对象
二、在javascrip中的写法:
function lan(id,name){
this.id = id;
this.name = name;
this.getId = function(){
return this.id;
}
this.getName = function(){
return this.name;
}
this.setId = function(id){
this.id = id;
}
this.setName = function(name){
this.name = name;
}
}
var json1=JSON.stringify(lan1);------------输出结果是:{"id":1001,"name":"蓝星"}----------json格式
var json2=JSON.stringify(json1);----------输出的结果是:"{\"id\":1001,\"name\":\"蓝星\"}"---字符串格式
var json2_1=JSON.stringify(json1);-------输出结果是:"\"{\\\"id\\\":1001,\\\"name\\\":\\\"蓝星\\\"}\""
4:将json中的值转化为javascript对象,然后再把对象中值输出来
var js=JSON.parse(json1);----------------将json中的内容封装在javascript对象中
alert(js.name+"-----"+js.id);---------输出对象中的值
var arr=new Array();
arr.push("蓝星");
arr.push("红心");
arr.push("白皙");
arr.push("紫嫣");
1) alert(arr);-----------得到的结果是:===== 蓝星,红心,白皙,紫嫣
alert(arr[0]);--------得到的结果是:=====蓝星
2):将js数组转化为json格式字符串
var json3=JSON.stringify(arr);
alert(json3);----------得到的结果是json格式的字符串:"[\"蓝星\",\"红心\",\"白皙\",\"紫嫣\"]"
3):将json格式的字符串转化为json格式的数组
var json4=JSON.parse(json3);
alert(json4);----------------//得到的结果是json格式的数组:["蓝星","红心","白皙","紫嫣"]
4):将json格式的数组转化为js格式的数组
var json4=JSON.parse(json4);
alert(json4);---------------------得到的结果是:蓝星,红心,白皙,紫嫣
alert(json4[0]);------------------得到结果是:蓝星
var arr=new Array();
arr.push(new lan(1001,"蓝星"));
arr.push(new lan(1002,"蓝星2"));
arr.push(new lan(1003,"蓝星3"));
arr.push(new lan(1004,"蓝星4"));
1)alert(arr);---结果是:[Object,Object],[Object,Object],[Object,Object],[Object,Object]
alert(arr[0].name);-----得到的结果是:蓝星
var json3=JSON.stringify(arr);
2)alert(json3);--结果是[{"id":1001,"name":"蓝星"},{"id":1001,"name":"蓝星2"},
{"id":1001,"name":"蓝星3"},{"id":1001,"name":"蓝星4"}]
var json4=JSON.parse(json3);
//var json4=eval("("+json3+")");
3)alert(json4);--结果[Object,Object],[Object,Object],[Object,Object],[Object,Object]
alert(json4[0].name);-----得到的结果是:蓝星
总结:==========
JSON.stringify:用处:
1:将json格式的数组或是json格式转化为字符串
2:将js对象转化为json格式
1)js对象是普通对象==转化为json格式对象
"{\"id\":1001,\"name\":\"蓝星\"}"
2)js对象是数组==转化为json格式的数组
[{"id":1001,"name":"蓝星"},{"id":1001,"name":"蓝星
2"}, {"id":1001,"name":"蓝星3"},{"id":1001,"name":"蓝星4"}]
JSON.parse:用处
1:将json格式对象或是json数组,转化为js对象或是js数组
1)"{\"id\":1001,\"name\":\"蓝星\"}"===..parse转化后=[Object,Object]
2)[{"id":1001,"name":"蓝星"},{"id":1001,"name":"蓝星
2"}, {"id":1001,"name":"蓝星3"},{"id":1001,"name":"蓝星4"}]
通过JSON.parse转化后如下:
[Object,Object],[Object,Object],[Object,Object],[Object,Object]