JSON解析的几种方式

简介: JSON解析的几种方式

JSON是首先一种数据结构,说白了就是对数据的描述,刚刚出现是为了取代XML,可惜并没有,但是在作为配置文件上,却是很好,由于它小巧灵活,描述数据很好,所以在网络上进行数据传输更加方便。


请记住JSON对数据的描述形式,既然是形式,那么它的数据形式是什么样的:


对象的描述是: {} 这个表示jsonobject(json对象)

数组的描述是: [] 表示jsonarray(json数组)

属性或值的描述是: “”

连接之间的描述是: :


 在开发中,网络请求和json解析使用的频率是一样高的,因为网络请求返回来的一般都是json(当然还有xml),这里讨论的是json,网络请求的工具类前面我的博客已经写过了,这里给出网址:http://blog.csdn.net/u014727709/article/details/53389840 直接复制就可使用。


 解析json的方法有很多,我最开始接触的时候使用的是原生解析,第二种就是Gson解析,还有阿里巴巴的FastJson,JackJson等,这里看一下如何进行json解析,这里使用的网络请求就是上面提到的工具类。


解析这个网址返回的json:http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&page=1&limit=20 这是一个get请求

格式是这样的:

{
“ret”: 1,
“data”: [
{
“id”: “8289”,
“title”: “油焖大虾”,
“pic”: “http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg”,
“collect_num”: “1596”,
“food_str”: “大虾 葱 生姜 植物油 料酒”,
“num”: 1596
},


。。。

第一种方法:原生解析

 首先要分析json的格式,这里首先是一个json对象(即JsonObject),里面还嵌套有一个json数组(即JsonArray),jsonarray里面又是一个json对象。分析清楚那就可以进行解析了,当然最好的话,还是要建立一个json所对应的实体类bean,这里我就不写了,下面会在提到的。


这里的result就是网络请求返回来的json字符串。

           JSONObject jsonObject = new JSONObject(result);
                    JSONArray jsonArray = jsonObject.getJSONArray("data");
                    for (int j = 0; j < jsonArray.length(); j++) {
                        JSONObject jsonObject2 = jsonArray.getJSONObject(j);
                        String id = jsonObject2.getString("id");
                        String title = jsonObject2.getString("title");
                        String pic = jsonObject2.getString("pic");
                        String collect_num = jsonObject2.getString("collect_num");
                        String food_str = jsonObject2.getString("food_str");
                        String num = jsonObject2.getString("num");
                        Log.e("json------->", id+","+title+","+pic+","+collect_num+","+food_str+","+num);

这里是输出的结果:

aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTYxMjIxMTExMzQ4NjQy.png


注意:解析json的时候,最使用json里面对应的数据类型进行解析,这里我统一使用的是String类型来获得解析的结果。例如:json里面最后一个num的类型是int,解析的时候可以int num = jsonObject2.getInt(“num”);


 解析出来的结果你可以存放在你建立的实体类bean里面,或者存在集合List< HashMap< String, Object>>里面也可以,但是一般的话,都是存放在实体类里面的。


第二种解析方式:Gson解析

 Gson解析需要下载gson.jar包,自己去百度下载吧或者下载我的demo里面就有。


 这里解析就需要给json生成实体类,初学的话建议手写,熟悉的话可以使用Android Studio里面插件GsonFormat来自动生成,这里实体类我就不贴出来了,去我的demo里面看吧。


解析就是一句话的事:

 MenuBean menuBean = new Gson().fromJson(result, MenuBean.class);
                Log.e("MenuBean----->", menuBean.getRet()+"");

结果如下:

aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTYxMjIxMTEzNDU5NjA0.png


第三种解析方式:FastJson和Gson类似的,就不贴图了。

                MenuBean menuBean =  JSON.parseObject(result,MenuBean.class);
                Log.e("MenuBean----->", menuBean.getRet()+"");
                Log.e("MenuBean----->", menuBean.getData().get(0).getPic()+"");


第四种解析方式:JackJson解析,同样和上面类似

          MenuBean menuBean;
          menuBean = new ObjectMapper().readValue(result, MenuBean.class);
                    Log.e("MenuBean----->", menuBean.getRet()+"");
                    Log.e("MenuBean----->", menuBean.getData().get(0).getPic()+"");


demo下载地址:http://download.csdn.net/detail/u014727709/9717408



欢迎start,欢迎评论,欢迎指正

相关文章
|
2月前
|
JSON 缓存 自然语言处理
多语言实时数据微店商品详情API:技术实现与JSON数据解析指南
通过以上技术实现与解析指南,开发者可高效构建支持多语言的实时商品详情系统,满足全球化电商场景需求。
|
4月前
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
3月前
|
JSON 算法 API
淘宝商品评论API接口核心解析,json数据返回
淘宝商品评论API是淘宝开放平台提供的数据服务接口,允许开发者通过编程方式获取指定商品的用户评价数据,包括文字、图片、视频评论及评分等。其核心价值在于:
|
1月前
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
238 3
|
22天前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
114 0
|
5月前
|
JSON 定位技术 PHP
PHP技巧:解析JSON及提取数据
这就是在PHP世界里探索JSON数据的艺术。这场狩猎不仅仅是为了获得数据,而是一种透彻理解数据结构的行动,让数据在你的编码海洋中畅游。通过这次冒险,你已经掌握了打开数据宝箱的钥匙。紧握它,让你在编程世界中随心所欲地航行。
190 67
|
2月前
|
JSON 自然语言处理 API
多语言实时数据淘宝商品评论API:技术实现与JSON数据解析指南
淘宝商品评论多语言实时采集需结合官方API与后处理技术实现。建议优先通过地域站点适配获取本地化评论,辅以机器翻译完成多语言转换。在合规前提下,企业可构建多语言评论数据库,支撑全球化市场分析与产品优化。
|
8月前
|
数据采集 JSON 数据可视化
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
504 4
JSON数据解析实战:从嵌套结构到结构化表格
|
10月前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
10月前
|
JSON 小程序 UED
微信小程序 app.json 配置文件解析与应用
本文介绍了微信小程序中 `app.json` 配置文件的详细
1447 12

推荐镜像

更多
  • DNS