有两种方法实现:
(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();。
for (int i = 0; i < 3; i++) {。
persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合。
JSONArray array = new JSONArray();// Json格式的数组形式。
JSONObject obj;//json格式的单个对象形式。
for (int i = 0; i < persons.size(); i++) {。
obj = new JSONObject();。
//依次填充每一个Java实体对象。
try {
obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充。
obj.put("sex", persons.get(i).getSex());。
obj.put("married", persons.get(i).getMarried());。
obj.put("address", persons.get(i).getAddress());。
array.put(obj);//将JSONObject添加入JSONArray。
} catch (JSONException e) {。
e.printStackTrace();。
}
}
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区");。
//创建GSON对象
Gson gson = new Gson();。
//调用toJson方法即可转换为字符串的json格式。
String json = gson.toJson(person);。
string转json有三种方法:。
第一种:string直接转json。
String json = "{\"2\":\"efg\",\"1\":\"abc\"}"; JSONObject json_test = 。
JSONObject.fromObject(json); 将string的双引号转义即可,适用于字符串较短的。
第二种:将string转为list后转为json。
Listlist = new ArrayList(); list.add("username"); 。
list.add("age"); list.add("sex"); JSONArray array = new JSONArray(); 。
array.add(list);。
可以使用list的add函数将需要的字符串拼接即可,但是这个只能使用jsonarry。
第三种:将string转为map后转为json。
Mapmap = new HashMap();。
map.put("1", "abc");。
map.put("2", "efg");。
JSONArray array_test = new JSONArray();。
array_test.add(map);。
JSONObject jsonObject = JSONObject.fromObject(map);。
这里使用map就可以将字符串转化为JSONArray或者JSONObject都可以,但是这里的键不能使用int型。
搜json-lib.jar
这个包的例子:
JSONObject obj = new JSONObject();。
obj.put("name", "kotomi");。
obj.toString();。
得到:{"name":"kotomi"}。
也可以吧自己定义的实体转,如
JSONObject.fromObject(xxx);。
xxx是你自己定义的实体,他会吧xxx里提供了getter的都转成json。
有两种方法实现:
(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();。
for (int i = 0; i < 3; i++) {。
persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合。
JSONArray array = new JSONArray();// Json格式的数组形式。
JSONObject obj;//json格式的单个对象形式。
for (int i = 0; i < persons.size(); i++) {。
obj = new JSONObject();。
//依次填充每一个Java实体对象。
try {
obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充。
obj.put("sex", persons.get(i).getSex());。
obj.put("married", persons.get(i).getMarried());。
obj.put("address", persons.get(i).getAddress());。
array.put(obj);//将JSONObject添加入JSONArray。
} catch (JSONException e) {。
e.printStackTrace();。
给你个思路:
1、将jsonstr转为json对象 (这个可以用net.sf.json.JSONObject第三方包来实现)
2、根据refObj 这个key获取{'existType':'exist','deptType':'emp','treeNodeType':'dept'},把获取的这数据再转为json.。
3、将转后的json根据existType就能取得值了 。