使用原生的解析:
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、使用原生的解析:String json = "..."
JSONArray array= new JSONArray(json)
//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:
for (int j = 0j <array.length()j++) {
obj = array.getJSONObject(j)
Data data = new Data()
data.setThumbnail(obj.getString("thumbnail"))
data.setTitle(obj.getString("title"))
data.setUrl(obj.getString("url"))
mDataList.add(data)
}
2、使用第三方包如Gson,但是这个你得保证你的JSON字符串个z
org.json.JSONObject用这个就可以实现,你上网上找这个包就可以了,里面封装了一些方法,可以将一个JSON字符串转换为一个JSONObject对象,也可以反向操作,具体的你看下它的API就知道了。
不如你的这个字符串就可以这么实现
public static void main(String[] args) throws JSONException {
String sJson = "[{'gwcxxid':'1','spsl':'2'},{'gwcxxid':'1','spsl':'2'},{'gwcxxid':'3','spsl':'4'}]"
JSONArray jsonArray = new JSONArray(sJson)
int iSize = jsonArray.length()
System.out.println("Size:" + iSize)
for (int i = 0i <iSizei++) {
JSONObject jsonObj = jsonArray.getJSONObject(i)
System.out.println("[" + i + "]gwcxxid=" + jsonObj.get("gwcxxid"))
System.out.println("[" + i + "]spsl=" + jsonObj.get("spsl"))
System.out.println()
}
}