永发信息网

android中将json转为list

答案:2  悬赏:50  手机版
解决时间 2021-04-07 04:37
  • 提问者网友:缘字诀
  • 2021-04-06 13:06
android中将json转为list
最佳答案
  • 五星知识达人网友:雾月
  • 2021-04-06 13:59
android中json转换成List

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 {

public static Map getMap(String jsonString)
{
JSONObject jsonObject;
try
{
jsonObject = new JSONObject(jsonString); @SuppressWarnings("unchecked")
Iterator keyIter = jsonObject.keys();
String key;
Object value;
Map valueMap = new HashMap();
while (keyIter.hasNext())
{
key = (String) keyIter.next();
value = jsonObject.get(key);
valueMap.put(key, value);
}
return valueMap;
}
catch (JSONException e)
{
e.printStackTrace();
}
return null;
}


public static List> getList(String jsonString)
{
List> list = null;
try
{
JSONArray jsonArray = new JSONArray(jsonString);
JSONObject jsonObject;
list = new ArrayList>();
for (int i = 0; i < jsonArray.length(); i++)
{
jsonObject = jsonArray.getJSONObject(i);
list.add(getMap(jsonObject.toString()));
}
}
catch (Exception e)
{
e.printStackTrace();
}
return list;
}


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> lm = Test.getList(temp);
for(int i=0;i System.out.println(lm.get(i).get("aa"));
System.out.println(lm.get(i).get("bb"));
}
}

}
全部回答
  • 1楼网友:风格不统一
  • 2021-04-06 14:10
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 list = new ArrayList();
//遍历json对象
for(int i=0;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格式。不好意思噶~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯