JAVA简便解析json文件

首先放上我要解析的json文件:

{ "resultcode":"200", "reason":"Success", "result":{ "data":[ { "id":"14", "title":"红烧肉", "tags":"家常菜;老年人;咸;半小时-1小时;青少年;白领;红烧;1-2人;炒锅", "imtro":"加了鹌鹑蛋,祝大家岁岁平“鹌”。", "ingredients":"五花肉,250g;萝卜,100g;鹌鹑蛋,20个", "burden":"油,适量;盐,适量", "albums":[ "http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/t\/0\/14_359794.jpg" ], "steps":[ { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_706ca81e0bbecefe.jpg", "step":"1.带皮五花肉 ,鹌鹑蛋,白萝卜备用。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_dc89a7e8f2823202.jpg", "step":"2.配料备用。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_ae5efcd7698c7a51.jpg", "step":"3.鹌鹑蛋煮熟后去皮,备用。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_6246ae9cde95a443.jpg", "step":"4.白萝卜洗净,切大块。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_fa36e18ba88ba812.jpg", "step":"5.五花肉,洗净切大块。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_fb6017cd9ea66698.jpg", "step":"6.焯水后备用。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_79b1cc9fb722b4dd.jpg", "step":"7.油锅烧热,下入肉块。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_0a45336653b0eb33.jpg", "step":"8.煎到微黄。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_cb483431930bb8cd.jpg", "step":"9.加入白糖。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_93eababb3d6f328a.jpg", "step":"10.炒到金黄色。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_b1672001decab1dc.jpg", "step":"11.加入料酒和老抽,炒均匀。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_03ce88cb45776456.jpg", "step":"12.放入干红椒,生姜, 八角, 香叶,花椒,炒出香味后,后加入适量的水。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_5e067f35b2297a47.jpg", "step":"13.煮十几分钟后,加入萝卜和鹌鹑蛋。" }, { "img":"http:\/\/juheimg.oss-cn-hangzhou.aliyuncs.com\/cookbook\/s\/1\/14_7f8a56f9b8498703.jpg", "step":"14.再煮上十几分钟,肉和萝卜软烂,大火收汁加入适量的盐即可。" } ] } ], "totalNum":1, "pn":0, "rn":1 }, "error_code":0 }

结构大概如下:

调用api后返回的json文件就是这样,很长很乱。这份文件是一份菜谱,我现在只需要用到这里面菜名,食材,做法等信息。

先放上解析json的代码:

JSONObject object = JSONObject.fromObject(result);
JSONObject ob=object.getJSONObject("result");
JSONArray ob1=ob.getJSONArray("data");
JSONObject o2=ob1.getJSONObject(0);
JSONArray po=o2.getJSONArray("steps"); if(object.getInt("error_code")==0){
System.out.println(o2.getString("title"));
System.out.println(o2.getString("ingredients"));
System.out.println(o2.getString("burden"));
for(int i=0;i<po.size();i++){ JSONObject u=po.getJSONObject(i); System.out.println(u.get("step"));
}

 通俗一点讲,解析过程分析起来就只有两点:

第一种,大括号前面的看成是JSONObject

第二种,中括号前面的看成是JSONArray

结果如下图:

JAVA简便解析json文件的更多相关文章

  1. Java解析JSON文件的方法

    http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html java读取文件的方法 http://www.cnblogs.com/lovebread/ar ...

  2. Android--------使用gson解析json文件

    ##使用gson解析json文件 **json的格式有两种:** **1. {}类型,及数据用{}包含:** **2. []类型,即数据用[]包含:** 下面用个例子,简单的介绍gson如何解析jso ...

  3. 安卓解析JSON文件

    安卓解析JSON文件 根据JOSN文件的格式,文件只有两种数据,一是对象数据,以 {}为分隔,二是数组,以[]分隔 以下介绍安卓如何解析一个JSON文件,该文件存放在assets目录下,即:asset ...

  4. python脚本解析json文件

    python脚本解析json文件 没写完.但是有效果.初次尝试,写的比较不简洁... 比较烦的地方在于: 1,中文编码: pSpecs.decode('raw_unicode_escape') 2,花 ...

  5. 使用google-gson类库解析json文件

    使用google-gson类库解析json文件 使用JsonParser解析器来解析字符串和输入流,变成json对象 代码如下: public class Readjson { public stat ...

  6. Java jdom解析xml文件带冒号的属性

    Java jdom解析xml文件带冒号的属性 转载请标明出处: https://dujinyang.blog.csdn.net/article/details/99644824 本文出自:[奥特曼超人 ...

  7. Logstash:解析 JSON 文件并导入到 Elasticsearch 中

    转载自:https://elasticstack.blog.csdn.net/article/details/114383426 在今天的文章中,我们将详述如何使用 Logstash 来解析 JSON ...

  8. Java解析JSON文件的方法(一)

    一.首先需要在Eclipse工程中导入相关的jar包,jar包参见链接:http://yunpan.alibaba-inc.com/share/link/NdA5b6IFK 二.提供一份待解析的jso ...

  9. java解析json文件(省,市,区)

    [{"code":"11","name":"北京市"},{"code":"12" ...

随机推荐

  1. 【转】Android UI 五种布局

    在一个Android应用中,Layout是开发中的一个很重要环节,Layout是组成UI不可缺少的一部分. ## Android UI 核心类 在Android应用构建UI的方法有以下几种: 单纯使用 ...

  2. opencv-python与c++ opencv中的一些区别和基础的知识

    使用opencv-python一段时间了,因为之前没有大量接触过c++下的opencv,在网上看c++的一些程序想改成python遇到了不少坑,正好在这里总结一下. 1.opencv 中x,y,hei ...

  3. 分享:Python中的位运算符

    按位运算符是把数字看作二进制来进行计算的.用的不太多,简单了解. 下表中变量 a 为 60,b 为 13二进制格式如下: a = 0011 1100 b = 0000 1101 a&b = 0 ...

  4. Struts2 基本的ResultType 【学习笔记】

    在struts2-core.jar/struts-default.xml中,我们可以找到关于result-type的一些配置信息,从中可以看出struts2组件默认为我们提供了这 些result-ty ...

  5. ADO.NET通用类库

    using System.Data; using System.Data.SqlClient; namespace DataService { public class SQLHelper { pub ...

  6. JBoss AS7(Application Server 7)的Standalone模式和Domain模式

    JBoss AS7(Application Server 7)支持两种引导模式:standalone和domain(域). Standalone模式对于很多应用,并不需要domain管理能力,JBos ...

  7. unix网络编程环境搭建

    unix网络编程环境搭建 网络编程 环境 1.点击下载源代码 可以通过下列官网中的源代码目录下载最新代码: http://www.unpbook.com/src.html 2.解压文件 tar -xz ...

  8. 登录功能(MD5加密)

    登录这个功能,是不管哪个项目都会用到的,登录做的好坏,安全性的保障将直接影响到整个系统的成败,尤其是一些安全性要求比较严格的项目 1.首先需要对密码进行加密,这里用到的是md5加密,需要在login. ...

  9. Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from http://repo.maven.apache.org/ maven2 was cached in the local repository, resolution will not be reattempted until the update interv

    Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from http://repo.maven.apache.org/  mave ...

  10. 高可用之KeepAlived(2):keepalived+lvs

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...