首先要搞清楚有三种包都支持字符串转json数据,但这两种的语法并不相同。这三个包分别是:org.json和json-lib;和 alibaba.fastjson.JSONArray;其中如果要用json-lib的话还必须下载另外5个jar包,而使用org.json和alibaba.fastjson.JSONArray则不需要。
一、使用json-lib的程序:
1、String生成JSONArray:
生成结果:
2、String生成JSONObject:
生成结果:
二、使用org.json的程序
1、String转JSONArray,结果与上面一样:
2、String生成JSONObject,结果与上面一样:
三、使用alibaba.fastjson.JSONArray的程序
话不多说,直接上代码
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject;
//1.json字符串转换为对象 String jsonString="{'name':'42313123','id':'2345','age':12}"; JSONObject jsonObject = JSONObject.parseObject(jsonString); String id = jsonObject.getString("id"); System.out.println(id); //2. JSONObject转化成自定义类对象 PeoplePo peoplePo1 = JSONObject.parseObject(jsonString, PeoplePo.class); System.out.println(peoplePo1); //3. JSONObject转化成Map集合 Map map = JSONObject.parseObject(jsonString, Map.class); System.out.println(map); //4. 自定义对象转化成json格式的字符串 PeoplePo peoplePo = new PeoplePo(); peoplePo.setId("1"); peoplePo.setAge(11); peoplePo.setName("LH"); String peopleJson = JSON.toJSONString(peoplePo); System.out.println(peopleJson); //5. String类型转化成JSONObject; String str = "{\"result\":\"success\",\"message\":\"成功!\"}"; JSONObject jsonObject1 = JSONObject.parseObject(str); System.out.println(jsonObject1); //6. JSONObject转化成JSONArray的两种方式 String str1 = "{\"result\":\"success\",\"message\":\"成功!\",\"data\":[{\"name\":\"Tom\",\"age\":\"20\"}]}"; JSONObject jsonToArray = JSONObject.parseObject(str1); //方式一 JSONArray data = jsonToArray.getJSONArray("data"); System.out.println(data); //方式二 JSONArray jsonArray = JSONArray.parseArray(jsonToArray.getString("data")); System.out.println(jsonArray); //7. jsonArray转化成JSONObject并取出其中的元素数据 JSONObject o = (JSONObject) jsonArray.get(0); String name = o.getString("name"); System.out.println(o); System.out.println(name); System.out.println(jsonArray.toString());
关于包:
1、如果选第一种方式json-lib,需要下载6个包:
2、如果选择第二种方式org.json,只需要下载一个包,因此强烈建议用这种方式:
各种jar包的下载链接:http://download.csdn.net/detail/u014260748/8496327点击打开链接