java json 构造_json 构造和解析

本文介绍了如何在Java中处理JSON,包括引入JSON库、构造JSON对象、解析JSON字符串以及遍历JSON中的未知键。示例代码详细展示了如何创建JSON对象、转换为字符串,以及如何解析JSON获取特定数据。
摘要由CSDN通过智能技术生成

目录:

(1)引入jar包;

(2)json的构造;

(3)json的解析;

(4)遍历未知key。

(1)java对json的处理,可借助org.json.jar.

org.json

json

20090211

(2)json的构造

//construct json and output it

public String constructJson() throws JSONException {

JSONObject map1 = new JSONObject();

map1.put("name", "张三");

map1.put("password", "123");

System.out.println("map1 --->" + map1);

JSONObject map2 = new JSONObject();

map2.put("name", "李四");

map2.put("password", "456");

System.out.println("map2 --->" + map2);

JSONArray list = new JSONArray();

list.put(map1);

list.put(map2);

System.out.println("jsonMembers --->" + list);

JSONObject json=new JSONObject();

json.put("users", list);

System.out.println("json --->" + json);

return json.toString();

}

public static void main(String args[]) throws Exception{

RoomTool rt = new RoomTool();

rt.constructJson();

}

输出如下:

map1 --->{"password":"123","name":"张三"}

map2 --->{"password":"456","name":"李四"}

jsonMembers --->[{"password":"123","name":"张三"},{"password":"456","name":"李四"}]

json --->{"users":[{"password":"123","name":"张三"},{"password":"456","name":"李四"}]}

(3)json的解析

//construct json from String and resolve it.

public String jsonTest2() throws JSONException{

String jsonString=jsonTest();

JSONObject json= new JSONObject(jsonString);

JSONArray jsonArray=json.getJSONArray("users");

String loginNames="loginname list:";

for(int i=0;i

JSONObject user=(JSONObject) jsonArray.get(i);

String userName=(String) user.get("loginname");

if(i==jsonArray.length()-1){

loginNames+=userName;

}else{

loginNames+=userName+",";

}

}

System.out.println("loginNames --->" + loginNames);

return loginNames;

}

public static void main(String args[]) throws Exception{

RoomTool tool = new RoomTool();

tool.jsonTest2();

}

输出如下:loginNames --->loginname list:zhangfan,zf

(4)遍历未知key

public void parseJson(String jsonString) throws JSONException{

JSONObject json= new JSONObject(jsonString);

Iterator it = json.keys();

while(it.hasNext()){

String key = it.next().toString();

int values = Integer.parseInt((String)json.get(key));

System.out.println(key + "--->" + values);

}

}

public static void main(String args[]) throws Exception{

RoomTool tool = new RoomTool();

tool.parseJson("{\"1\":\"0\",\"2\":\"30\",\"3\":\"15\",\"4\":\"15\",\"5\":\"20\",\"6\":\"20\"}");

}

输出:

1--->0

2--->30

3--->15

4--->15

5--->20

6--->20

一.Json对象与Json字符串的转化

1.jQuery插件支持的转换方式:

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象

2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

var a={"name":"tom","sex":"男","age":"24"};

var b='{"name":"Mike","sex":"女","age":"29"}';

var aToStr=JSON.stringify(a);

var bToObj=JSON.parse(b);

alert(typeof(aToStr));  //string

alert(typeof(bToObj));//object

3.Javascript支持的转换方式:

eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号

注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

4.JSON官方的转换方式:

http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;

可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

二、JSON 字符串 与 java 对象的转换

1. 把java 对象列表转换为json对象数组,并转为字符串

JSONArray array = JSONArray.fromObject(list);

String jsonstr = array.toString();

2. 把java对象转换成json对象,并转化为字符串

JSONObject object = JSONObject.fromObject(user);

Log4jInit.ysulogger.debug(object.toString());

3.把JSON字符串转换为JAVA 对象数组

JSONArray json = JSONArray.fromObject(userStr);//userStr是json字符串

List users= (List)JSONArray.toCollection(json, User.class);

4.把JSON字符串转换为JAVA 对象

JSONObject jsonobject = JSONObject.fromObject(jsonStr);

User user= (User)JSONObject.toBean(object,User.class);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值