[开发学习]之JSON

来源:互联网 发布:人工智能电影优酷 编辑:程序博客网 时间:2024/06/06 05:36

1.  JSON的基础包括两个结构:
1)一个名值对集合,称为对象(object),名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值
 例如: {"firstname":"bre","lastname":"dhja"}

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

    JSON 值可以是:

    • 数字(整数或浮点数)
    • 字符串(在双引号中)
    • 逻辑值(true 或 false)
    • 数组(在方括号中)
    • 对象(在花括号中)
    • null



2)一个有序的值列表,称为数组(array)
用大括号包裹:["json","is","easy"]
数组可包含多个对象(用大括号包裹),
{"emplore":[{"firstname":"li","lastname":"sun"},{"firstname":"wang","lastname":"gui"}]}
说明:
  JSON数组也存在一些限制,数组中的元素必须是得到支持的值。例如,Date对象不在支持的值之列,所以不能作为JSON数组的元素或JSON对象的一个属性。String与JavaScript字符串字面量有相同的表示,不过串必须用双引号包围。Number类似于JavaScript数字字面量,不过八进制和十六进制格式未得到支持;  方法不能使用JSON表示,因为JSON语法中不包括函数字面量。另外,JavaScript的new操作符也不是JSON语法的一部分,不能在对象或数组中使用。

2.
把 JSON 文本转换为 JavaScript 对象
创建包含 JSON 语法的 JavaScript 字符串:
var txt='{"emplore:['+'{"firstname":"li","lastname":"gui"},'+'{"firstname":"sun","lastname":"er"}]"}';
var obj=eval("("+txt+")");
document.getElementById("usrname").innerHtml=obj.emplore[1].firstname;
3.Java代码转换成json代码
1)List集合转化为json对象
  List list=new List();
list.add("zhang");
list.add("li");
JSONArray objson=JSONArray.fromObject(list);
String str=objson,toString()//将json对象转为
2)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);

3.)       Bean转换成json代码

JSONObject jsonObject 
= JSONObject.fromObject(new JsonBean());

4).       数组转换成json代码

boolean[] boolArray = new boolean[] { truefalsetrue };

JSONArray jsonArray1 
= JSONArray.fromObject(boolArray);

 

5). 一般数据转换成json代码

JSONArray jsonArray3 
= JSONArray.fromObject("['json','is','easy']" );

6).       beans转换成json代码

List list 
= new ArrayList();

JsonBean2 jb1 
= new JsonBean2();

jb1.setCol(
1);

jb1.setRow(
1);

jb1.setValue(
"xx");

JsonBean2 jb2 
= new JsonBean2();

jb2.setCol(
2);

jb2.setRow(
2);

jb2.setValue(
"");

list.add(jb1);

list.add(jb2);

JSONArray ja 
= JSONArray.fromObject(list);
 4.使用过程(例如,在js当中读取后台数据)
 首先从后台获得json形式的数据,放入以上类型(集合或者数据)当中,然后将其转为JSON对象(JSONArray或者JSONobject.fromObject())
然后可以在转为string字符串,在前台js当中,调用javascript的eval()方法将其转为javascript对象依次循环读取数据。
List<java  bean对象> list=bean.getList();//通过javaBean对象bean,调用bean里面的getList()方法,返回一个list对象,该对象包含所需的json形式的数据(值对或者数组形式)
  JSONArray jsonarray=JSONArray.fromObject(list)//将list对象转为json对象
  PrintWrite pw=response.getWriter();
  pw.print(jsonarray.toString);
//下面在前台js当中读取数据
success:function(msg){//AJAX请求成功的函数
   var jsonmessage =eval(""+msg+"");
$(jsonmessage).each(function(i){
//循环返回的内容
$("#mess1").append(
jsonmessage[i].name+jsonmessage[i].age;
)
})
}



原创粉丝点击