json文件怎么解析,json数据的解析方法有哪些
数据是一种取代可扩展置标语言的数据结构,和可扩展标记语言相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
本篇文章将介绍三种数据解析方式,供大家参考。
一、JSON解析之传统的JSON解析
1、生成数据字符串
公共静态字符串创建JsonString(字符串键,对象值){
JSON对象JSON对象=new JSON对象();
jsonObject.put(key,value);返回JSON对象。tostring();
}2、解析JSON字符串
分为以下三种情况,一个JavaBean,一个目录数组,一个嵌套地图的目录数组:
导入Java。util。ArrayList
导入Java。util。hashmap
导入Java。util。迭代器;
导入Java。util。列表;
导入Java。util。地图;
导入org。JSON。JSON数组;
导入org。JSON。JSON对象;
导入com。安卓。我的JSON。域。人;
/**
* 完成对数据数据的解析
*
*/
公共类JsonTools {
public static Person get Person(String key,String jsonString) {
人员人员=新人();
尝试{
JSONObject jsonObject=新JSON对象(JSON字符串);
JSON对象person对象=JSON对象。getjson对象( person );
人。setid(person对象。getint( id );
人。setname(person对象。getstring( name );
人。设置地址(个人对象。getstring( address );
} catch(异常e) {
//TODO:处理异常
}
退货人;
}
公共静态列表getPersons(String key,String jsonString) {
list list=new ArrayList();
尝试{
JSONObject jsonObject=新JSON对象(JSON字符串);
//返回数据的数组
JSON数组JSON数组=JSON对象。getjson数组(key);
for(int I=0;JSON数组。长度();i ) {
JSON对象JSON对象2=JSON数组。getjson对象(I);
人员人员=新人();
人。setid(JSON对象2。getint( id );
人。setname(JSON对象2。getstring( name );
人。设置地址(JSON对象2。getstring( address );
list.add(人);
}
} catch(异常e) {
//TODO:处理异常
}
退货单;
}
公共静态列表getList(String key,String jsonString) {
list list=new ArrayList();
尝试{
JSONObject jsonObject=新JSON对象(JSON字符串);
JSON数组JSON数组=JSON对象。getjson数组(key);
for(int I=0;JSON数组。长度();i ) {
string msg=JSON数组。getstring(I);
列表。添加(味精);
}
} catch(异常e) {
//TODO:处理异常
}
退货单;
}
公共静态列表列表键映射(字符串键、
String jsonString) {
list list=new ArrayList();
尝试{
JSONObject jsonObject=新JSON对象(JSON字符串);
JSON数组JSON数组=JSON对象。getjson数组(key);
for(int I=0;JSON数组。长度();i ) {
JSON对象JSON对象2=JSON数组。getjson对象(I);
map map=new HashMap();
迭代器iterator=JSON对象2。keys();
while (iterator.hasNext()) {
字符串JSON _ key=迭代器。next();
对象JSON _ value=JSON对象2。get(JSON _ key);
if (json_value==null) {
JSON _ value=
}
map.put(json_key,JSON _ value);
}
list.add(地图);
}
} catch(异常e) {
//TODO:处理异常
}
退货单;
}
}二、JSON解析之GSON
导入com。谷歌。gson。gson
公共类JsonUtils {
公共静态字符串createJsonObject(Object obj) {
Gson Gson=new Gson();
string str=gson。tojson(obj);
返回字符串;
}
}
//二、解析数据
导入Java。util。ArrayList
导入Java。util。列表;
导入Java。util。地图;
导入com。谷歌。gson。gson
导入com。谷歌。gson。反思。类型令牌;
;
公共类GsonTools {
公共GsonTools() {
//TODO自动生成的构造函数存根
}
/**
* @param
* @param jsonString
* @param cls
* @返回
*/
public static T get person(String JSON String,Class cls) {
T t=空
尝试{
Gson Gson=new Gson();
t=gson.fromJson(jsonString,cls);
} catch(异常e) {
//TODO:处理异常
}
return t;
}
/**
* 使用Gson进行解析目录
*
* @param
* @param jsonString
* @param cls
* @返回
*/
公共静态列表getPersons(String jsonString,Class cls) {
list list=new ArrayList();
尝试{
Gson Gson=new Gson();
list=gson.fromJson(jsonString,new TypeToken() {
}.getType());
} catch(异常e) {
}
退货单;
}
/**
* @param jsonString
* @返回
*/
公共静态列表getList(String jsonString) {
list list=new ArrayList();
尝试{
Gson Gson=new Gson();
list=gson.fromJson(jsonString,new TypeToken() {
}.getType());
} catch(异常e) {
//TODO:处理异常
}
退货单;
}
公共静态列表listKeyMaps(String jsonString) {
list list=new ArrayList();
尝试{
Gson Gson=new Gson();
list=gson.fromJson(jsonString,
新类型令牌(){
}.getType());
} catch(异常e) {
//TODO:处理异常
}
退货单;
}
}三、JSON解析之FastJSON
导入Java。util。ArrayList
导入Java。util。列表;
导入Java。util。地图;
导入com。阿里巴巴。快速JSON。JSON
导入com。阿里巴巴。快速JSON。类型引用;
公共类JsonTool {
public static T get person(String JSON String,Class cls) {
T t=空
尝试{
t=JSON.parseObject(jsonstring,cls);
} catch(异常e) {
//TODO:处理异常
}
return t;
}
公共静态列表getPersonList(String jsonstring,Class cls) {
list list=new ArrayList();
尝试{
list=JSON。解析数组(JSON字符串,cls);
} catch(异常e) {
//TODO:处理异常
}
退货单;
}
公共静态列表getPersonListMap1(
String jsonstring) {
list list=new ArrayList();
尝试{
list=JSON。解析对象(JSON字符串、
new TypeReference() {
}.getType());
} catch(异常e) {
//TODO:处理异常
}
退货单;
}
}JSON对于移动设备来说,尤其对于网络环境较差和流量限制的情况下,相对于可扩展置标语言格式的数据传输会更节省流量,传输效率更高。在这三种解析方式中使用是效率最高的,推荐使用。以上就是数据用什么解析的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。