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
求大神指点
//把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格式。不好意思噶~
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的主要内容,如果未能解决你的问题,请参考以下文章
ios中将nsdata类型的数据放到字典里,在封装成json可以吗
如何在android中将json对象从json数组转换为字符串数组