json字符串怎么转换为java对象?

Python032

json字符串怎么转换为java对象?,第1张

可以使用jackson的 new ObjectMapper().readValue(String, bean.class)\x0d\x0a或者使用 JSONObject.toBean(String,bean.class)\x0d\x0a都可以实现json转化为bean\x0d\x0a而 jackson 或者 JSONObject 的jar包网上均有下载,把下载的jar导入你的项目中即可。

public static void jsonStrToJava(){

//定义两种不同格式的字符串

String objectStr="{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}"

String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]"

//1、使用JSONObject

JSONObject jsonObject=JSONObject.fromObject(objectStr)

Student stu=(Student)JSONObject.toBean(jsonObject, Student.class)

//2、使用JSONArray

JSONArray jsonArray=JSONArray.fromObject(arrayStr)

//获得jsonArray的第一个元素

Object o=jsonArray.get(0)

JSONObject jsonObject2=JSONObject.fromObject(o)

Student stu2=(Student)JSONObject.toBean(jsonObject2, Student.class)

System.out.println("stu:"+stu)

System.out.println("stu2:"+stu2)

}

有两种方法实现:

(1)直接转换:

创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:

//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。

ArrayList<Person>persons = new ArrayList<Person>()

for (int i = 0i <3i++) {

persons.add(new Person("138******67", "女", true, "北京朝阳区"))//填充Java实体类集合

}

JSONArray array = new JSONArray()// Json格式的数组形式

JSONObject obj//json格式的单个对象形式

for (int i = 0i <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)