新办法更通用:json新包统一用.fromObject( )方法转json,需要用json.lib包如:
JSONObject json=JSONObject.fromObject(data);
通过 $.parseJSON 转换为json数组
JSONSerializer.toJSON(heros)把集合转换为JSON字符串
1.需要先导入json的jar包
- map转json:
Map<String,String> map=new HashMap<>();
map.put("s01", "zs");
map.put("s02", "ls");
map.put("s03", "ww");
JSONObject json=new JSONObject(map);
System.out.println(json);
结果:{"s02":"ls","s01":"zs","s03":"ww"}
3.b.javabean(普通对象 Person)转json、字符串转json
同样用JSONObject
private static void demo02() {
Person per=new Person();
per.setName("zs");
per.setAge(23);
Address address=new Address("西安","北京");
per.setAddress(address);
//Person(JavaBean)->json
JSONObject json=new JSONObject(per);
System.out.println(json);
//{"address":{"schoolAddress":"北京", "homeAddress":"西安"},
// "name":"zs",
// "age":23}
}
private static void demo03() {
String str="{\"s02\":\"ls\",\"s01\":\"zs\",\"s03\":\"ww\"}";
JSONObject json=new JSONObject(str);
System.out.println(json);
} //{"s02":"ls","s01":"zs","s03":"ww"}
4.json转json文件
用 json.write( )方法。
private static void demo03() throws JSONException, IOException {
//准备json数据(map->json)
Map<String,Person> map=new HashMap<>();
Person p1=new Person(23,"zs",new Address("xa","bj1"));
Person p2=new Person(24,"ls",new Address("xaq","bj2"));
Person p3=new Person(25,"ww",new Address("xa2","bj3"));
map.put("zs", p1);
map.put("ls", p2);
map.put("ww", p3);
//map->json
JSONObject json=new JSONObject(map);
//生成json文件
FileWriter fw=new FileWriter("C:\\Users\\zjh\\Desktop\\图片素材\\hello.txt");
json.write(fw);
fw.close();
}
//输出结果:
{"ww":{"address":{"schoolAddress":"bj3","homeAddress":"xa2"},
"name":"ww",
"age":25},
"zs":{"address":{"schoolAddress":"bj1","homeAddress":"xa"},
"name":"zs",
"age":23},
"ls":{"address":{"schoolAddress":"bj2","homeAddress":"xaq"},
"name":"ls",
"age":24}}