您的位置:首页 > 编程语言 > Java开发

json简介及在Java中的应用

2016-04-14 16:55 471 查看
JSON简介

JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式。其作用和xml有点类似,但是 比 XML 更小、更快,更易解析。JSON 解析器和 JSON 库支持许多不同的编程语言。

JSON 语法规则

JSON 对象在花括号中书写,对象可以包含多个名称/值对:如

var jsonObj = { "firstName":"John" , "lastName":"Doe" }


•数据在名称/值对中(如name:”tom”)

•数据由逗号分隔

•花括号保存对象

•方括号保存数组

这里介绍一下JSON 值可以是:

•数字(整数或浮点数)

•字符串(在双引号中),如

{ "firstName":"John" , "lastName":"Doe" }


•逻辑值(true 或 false)

•数组(在方括号中),如

var employees =
[{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }]


可以像这样访问 json对象数组中的第一项:employees[0].lastName;

可以这样修改数据:employees[1].firstName=”Tom”

•对象(在花括号中)

•null

javaScript与json对象的互相转换

json对象转成js对象:

json转js字符串:eval(‘(’ + jsonstr + ‘)’); //可以将json字符串转换成json对象(包括数组和字符串!!!),注意需要在json字符外包裹一对小括号;

另外,因为 JSON 使用 JavaScript 语法,所以json数组对象和js数组对象用法类似,都可以直接jsonArr[index]这样使用;

js对象转成json对象:

stringify(jsobj):将对象解析成json字符串!如果对象是js数组,解析成的也是json字符串而非数组(所以不能用数组下标方法了);

json在java中的应用

首先介绍一些json在java中的常用类和方法,所需的jar包如下图



常用类:JSONObject(json对象),JSONArray(json数组对象);

常用方法:

JSONObject.fromObject(obj):将java对象转成json对象(返回JSONObject);

JSONObject.toBean(obj, Student.class):将json对象转成指定类型的对象(返回的是Object对象,需要强制类型转换);

JSONArray.fromObject(obj):将java数组对象转成json数组(返回JSONArray);

array.getJSONObject(i):json数组获取下标为i的对象(返回JSONObject 对象);

jsonArray.toArray():将json数组转换成相应java数组(返回Object[]);

jsonObj.put(name,value):JSONObject实例添加元素;

下面看具体的代码例子:

//json转成Object
String json = "{id:'1001',name:'张三',age:22}";
Student stu = null;
JSONObject obj = JSONObject.fromObject(json);
stu = (Student)JSONObject.toBean(obj, Student.class);

//从一个JSON数组得到一个java对象数组
String jsonStus = "[{id:1,name:'jack',age:20},                   {id:2,name:'rose',age:20},
{id:3,name:'admin',age:20}]";
JSONArray array = JSONArray.fromObject(jsonStus);
Student[] stu = new Student[array.size()];
for(int i = 0; i < array.size(); i++){
JSONObject jsonObject = array.getJSONObject(i);
stu[i] = (Student)JSONObject.toBean(jsonObject, Student.class);
}

//java对象转换为json格式
JSONObject obj2=new JSONObject();
obj2.put("phone","123456");
obj2.put("zip","7890");
obj2.put("contact",obj2);

//一般数组转换成JSON
boolean[] boolArray = new boolean[]{true,false,true};
JSONArray jsonArray = JSONArray.fromObject( boolArray );


关于JSONObject对象的具体使用方法可以参考:http://www.cnblogs.com/hitwtx/articles/2468633.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript