android中将json转为list

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中将json转为list相关的知识,希望对你有一定的参考价值。

String =
[
"count":1,"gid":100000,"id":1,"text":"100000",
"count":70484,"gid":100000,"id":1,"text":"101252"
]
目标: 把id的值放入list_id中 -----list_id 为List
把text的值放入list_text中-list_text 为List
求大神指点

String json =  "'count':1,'gid':100000,'id':1,'text':'100000','count':70484,'gid':100000,'id':1,'text':'101252'";
//把json字符串转化为json对象
JSONObject jsonObject = JSONObject.fromObject(json);
ArrayList<obj> list = new ArrayList<obj>();
//遍历json对象
for(int i=0;i<jsonObject .size();i++)
    String s = jsonObject .getString(i);
    JSONObject data = JSONObject.fromObject(s);
    obj obj1 = new obj();
    obj1.list_id=data.getString("id");
    obj1.list_text = data.getString("text");
    list.add(obj1);


class obj
   private string list_id ;
   private string list_text ;

追问

String s = jsonObject.getString(i);
这行不明白,报错:参数不适合
list_id 是个list集合,list_text是另一个集合,你这个是把他们俩当参数了。如果
是放入2个不同的集合,是不是也是这个思路

追答

不好意思,json 字符串被我写错了。

String =
[
"count":1,"gid":100000,"id":1,"text":"100000",
"count":70484,"gid":100000,"id":1,"text":"101252"
]

是的,思路一样

追问

请问这个错误怎么解决呢?
String s = jsonObject.getString(i);

新手!勿喷
好像不是字符串的问题,编译通不过
报这个错
is not applicable for the arguments (int)
这样呢
String s = jsonObject.toString(i);

追答

String s = jsonObject .getString(i);
JSONObject data = JSONObject.fromObject(s);
这两句变成
JSONObject data = (JSONObject)jsonArray.opt(i);

我多解析了一次,所以解析不出来这样的json格式。不好意思噶~

参考技术A android中json转换成List<Map>

Java代码
package cn.anycall;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class Test
/**
* 将json 数组转换为Map 对象
* @param jsonString
* @return
*/
public static Map<String, Object> getMap(String jsonString)

JSONObject jsonObject;
try

jsonObject = new JSONObject(jsonString); @SuppressWarnings("unchecked")
Iterator<String> keyIter = jsonObject.keys();
String key;
Object value;
Map<String, Object> valueMap = new HashMap<String, Object>();
while (keyIter.hasNext())

key = (String) keyIter.next();
value = jsonObject.get(key);
valueMap.put(key, value);

return valueMap;

catch (JSONException e)

e.printStackTrace();

return null;


/**
* 把json 转换为ArrayList 形式
* @return
*/
public static List<Map<String, Object>> getList(String jsonString)

List<Map<String, Object>> list = null;
try

JSONArray jsonArray = new JSONArray(jsonString);
JSONObject jsonObject;
list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < jsonArray.length(); i++)

jsonObject = jsonArray.getJSONObject(i);
list.add(getMap(jsonObject.toString()));


catch (Exception e)

e.printStackTrace();

return list;


/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub

String temp = "[\"aa\":\"1\",\"bb\":\"2\",\"aa\":\"3\",\"bb\":\"4\",\"aa\":\"5\",\"bb\":\"6\"]";
List<Map<String, Object>> lm = Test.getList(temp);
for(int i=0;i<lm.size();i++)
System.out.println(lm.get(i).get("aa"));
System.out.println(lm.get(i).get("bb"));



求问 C#如何将json字符串转为datatable 求详细解答

没必要转为datatable啊,可以转为List,定义一个实体类用newtonsoft.json转, datatable其实大多用于数据库出来的数据,一般情况用不到的,非要转为datatable也可以,new一个datatable出来,循环json里面的每一条数据,一条一条加进datatable集 参考技术A 需要引用newtonsoft.json这个dll吧,用这个解析json字符串 参考技术B //序列化
json = Newtonsoft.Json.JsonConvert.SerializeObject(dt);
//反序列化
dt = Newtonsoft.Json.JsonConvert.DeserializeObject(list, typeof(DataTable)) as DataTable;

以上是关于android中将json转为list的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中将对象转换为 JSON

ios中将nsdata类型的数据放到字典里,在封装成json可以吗

如何在android中将json对象从json数组转换为字符串数组

如何在Android中将大型json数组拆分为页面

如何在 Android 中将 JSON 参数作为 Web 服务请求发送? [复制]

在 Android 中将 XML 转换为 JSON 会出错