Json,Gson,FastJson解析笔记

本文介绍了如何使用Java中的Json、Gson及FastJson库实现JavaBean与JSON之间的相互转换,包括单个对象及集合的处理,并提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Json
1.将JavaBean转换成Json对象:

public static String CreatJsonFromObject(Object key,Object value)
{
JSONObject JObj =new JSONObject();
JObj.put(key, value);
return JObj.toString();
}

2.解析Json:

public static Person parseJsonPerson(String key,String jsonStr)
{
System.out.print(key+"-->"+jsonStr);
Person person =new Person();
JSONObject jobj;
try
{
jobj = new JSONObject(jsonStr);
JSONObject personObj =jobj.getJSONObject(key);
person.setAge(personObj.getInt("age"));
person.setName(personObj.getString("name"));
person.setSex(personObj.getString("sex"));
}
catch (JSONException e)
{
e.printStackTrace();
}
return person;

}

public static List<Person> parseJsonListPerson(String key,String jsonStr)
{
System.out.print(key+"-->"+jsonStr);
List<Person> list=new ArrayList<Person>();
try
{
JSONObject jobj;
jobj = new JSONObject(jsonStr);
JSONArray personArr =jobj.getJSONArray(key);
for(int i=0;i<personArr.length();i++)
{
JSONObject personObj = personArr.getJSONObject(i);
Person person =new Person();
person.setAge(personObj.getInt("age"));
person.setName(personObj.getString("name"));
person.setSex(personObj.getString("sex"));
list.add(person);
}
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}

public static List<String> parseJsonListString(String key,String jsonStr)
{
System.out.print(key+"-->"+jsonStr);
List<String> list =new ArrayList<String>();
try
{
JSONObject jobj;
jobj = new JSONObject(jsonStr);
JSONArray personArr =jobj.getJSONArray(key);
for(int i=0;i<personArr.length();i++)
{
String personObj = personArr.getString(i);
list.add(personObj);
}
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}

public static List<Map<String, Object>> parseJsonListMap(String key,String jsonStr)
{
System.out.print(key+"-->"+jsonStr);
List<Map<String, Object>> list =new ArrayList<Map<String,Object>>();
try
{
JSONObject jobj;
jobj = new JSONObject(jsonStr);
JSONArray personArr =jobj.getJSONArray(key);
for(int i=0;i<personArr.length();i++)
{
JSONObject personObj = personArr.getJSONObject(i);
Iterator<String> set =personObj.keys();
while(set.hasNext())
{
String tempKey =set.next();
Object tempValue =personObj.get(tempKey);
HashMap<String,Object> map =new HashMap<String,Object>();
//注意tempValue可能为空
if(tempValue == null)
{
tempValue="";
}
map.put(tempKey, tempValue);
list.add(map);
}
}

}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}


return list;
}


Gson:
1.将JavaBean转换成Gson String

public static String CreatJsonFromObject(Object value)
{
Gson gson =new Gson();
return gson.toJson(value);

}

2.解析Gson String

public static <T> T getPerson(String Json, Class<T> cls)
{
Gson gson = new Gson();
T t = gson.fromJson(Json, cls);
return t;
}

public static <T> List<T> getPersons(String Json, Class<T> Type)
{
List<T> list = new Gson().fromJson(Json, new TypeToken<List<T>>()
{
}.getType());
return list;
}

public static List<String> getString(String Json)
{
List<String> retStr = new Gson().fromJson(Json, new TypeToken<List<String>>()
{
}.getType());
return retStr;
}

public static List<Map<String, Object>> getListMap(String Json)
{
List<Map<String, Object>> retStr = new Gson().fromJson(Json, new TypeToken<List<Map<String, Object>>>()
{
}.getType());
return retStr;
}

FastJson:
1.将JavaBean转换成FastJson String
服务端利用上述方式实现
2.解析FastJson String

public static <T> T getPerson(String jsonStr, Class<T> cls)
{
T t = JSON.parseObject(jsonStr, cls);
return t;
}

public static <T> List<T> getPersons(String jsonStr, Class<T> cls)
{
List<T> list = JSON.parseArray(jsonStr, cls);
return list;
}

/**
* @param jsonStr
* @return
*/
public static List<Map<String, Object>> getListMap(String jsonStr)
{
List<Map<String, Object>> list = JSON.parseObject(jsonStr, new TypeReference<List<Map<String, Object>>>()
{
});
return list;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值