java中把json怎么转换成数组?

Python017

java中把json怎么转换成数组?,第1张

使用原生的解析:

String json = "..."

//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:

for (int j = 0j <array.length()j++) {

obj = array.getJSONObject(j)

Data data = new Data()

mDataList.add(data)

}

数组声明

在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。

数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

以上内容参考:百度百科-数组

有两种方法实现:

(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)