android怎么直接把json转换为list
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android怎么直接把json转换为list相关的知识,希望对你有一定的参考价值。
参考技术A json就是些键值对,里面的数据类型可能不统一,自己手动解析就可以的,主要用jsonArray和jsonObject,可以去尝试一下http://blog.csdn.net/onlyonecoder/article/details/8490924 参考技术B 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"));
本回答被提问者采纳
.net 数据表转换成json
比如我通过查询在ASHX里面获得了一个表叫DT,怎么把这个DT转换成JSON类型的数据传给前台页面?然后前台js怎么使用这个传过去的json数据呢?就获得这个数据的第一条记录就好。。
Dt转换成Json一般可以通过以下的步骤来方便的转换首先对应表做一个实体类,该类标记可序列化
首先查询数据库获取表数据(比如获取了一条)
编译该条记录实例化表实体类并根据字段名赋值
直接按照json格式序列化该实体类就获取了Json格式的数据(如果需要多条数据只需要一个List,然后序列化那个List就可以了)
下面这个我以前做的东西,核心就是将DT转换成实体类集合
/// <summary>
/// DataTable转换为List<Model>的通用类
/// </summary>
/// <typeparam name="T"><Model类型/typeparam>
public static IList<T> ConvertToModel(DataTable dt)
// 定义集合
IList<T> ts = new List<T>();
// 获得此模型的类型
Type type = typeof(T);
string tempName = "";
foreach (DataRow dr in dt.Rows)
T t = new T();
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
tempName = pi.Name;
//string objType = pi.PropertyType.Name;
// 检查DataTable是否包含此列
if (dt.Columns.Contains(tempName))
// 判断此属性是否有Setter
if (!pi.CanWrite) continue;
object value = dr[tempName];
if (value != DBNull.Value)
if (value is DateTime) value = value.ToString();
pi.SetValue(t, value, null);
else
if (value is DateTime) value = value.ToString();
if (value is String)
pi.SetValue(t, value.ToString(), null);
ts.Add(t);
return ts;
/// <summary>
/// 序列化对象
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string JSSerialize(object data)
System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();
return ser.Serialize(data);
前台使用Json只需要反序列化话成对象,然后就像获取对象属性一样使用了,
你到百度上搜索序列化反序列化看看应该就明白了。
希望能帮到你…… 参考技术A 可以写自定义方法,通过遍历DT来构造JSON的字符串,最好的直接使用json.net类,去网上搜就有了,很方便的。 参考技术B
以上是关于android怎么直接把json转换为list的主要内容,如果未能解决你的问题,请参考以下文章