要求:解析下面5个JSON数据

1.String string =”{name:’zhangsan’,age:18}”;

2.String string2 = “{person:{name:’lisi’,age:30}}”;

3.String string3 = “{name:’zhangsan’,age:20,dept:{no:1,name:’android’}}”;

4.String string4 = “[{name:’zhangsan’,age:20},{name:’lisi’,age:21},{name:’wangwu’,age:22}]”;

5.String string5 = “{persons:[{name:’zhangsan’,age:20},{name:’lisi’,age:21},{name:’wangwu’,age:22}]}”;


官方解析方法:

遇到{}就解析为对象,遇到[]就解析为集合,这样一步一步解析就可以了

解析的目的:

可以让你获取任何层次的数据。

下面的这些解析都是完全解析,可以根据情况,解析到所需要的那层就可以了。
-----建议最好都完全解析。 比如第5个例题,你只需要集合persons,那就解析到这一层就够了,但如果需要集合里的person对象,那就需要继续解析。 更加直接点说:进行JSON数据解析后,你要什么数据,都可以直接获得。若不解析那么只能到一个JSON数据,这是一个整体。
你要JSON数据中具体某个人的name,或age时,不解析就做不到了

代码:

“`

package 敲代码解析JSON数据;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

public class Test1 {

public static void main(String[] args) {

    try {
//1.解析第一个字符串--遇到大括号{}--创建对象
String string ="{name:'zhangsan',age:18}";
System.out.println("第1三个字符串:");
JSONObject object=new JSONObject(string);
System.out.println(object.get("name"));
System.out.println(object.getInt("age"));
System.out.println(); //2.解析第二个字符串--遇到大括号{}--创建对象--再次遇到大括号{}--再次创建对象
String string2 = "{person:{name:'lisi',age:30}}";
System.out.println("第2个字符串:");
JSONObject object2=new JSONObject(string2);
JSONObject object3=object2.getJSONObject("person");
System.out.println(object3.get("name"));
System.out.println(object3.getInt("age"));
System.out.println(); //3.解析第3个字符串--遇到{}--创建对象--获取数据,再次遇到{}--创建对象
String string3 = "{name:'zhangsan',age:20,dept:{no:1,name:'android'}}";
System.out.println("第3个字符串:");
JSONObject object4=new JSONObject(string3);
System.out.println(object4.getString("name"));
System.out.println(object4.getInt("age"));
JSONObject object5=object4.getJSONObject("dept");
System.out.println(object5.getInt("no"));
System.out.println(object5.getString("name"));
System.out.println(); //4.解析第4个字符串--遇到方括号[]--创建数组--遇到{}--创建对象
String string4 = "[{name:'zhangsan',age:20},{name:'lisi',age:21},{name:'wangwu',age:22}]";
System.out.println("第4个字符串:");
JSONArray array=new JSONArray(string4);
JSONObject object6=array.getJSONObject(0);
JSONObject object7=array.getJSONObject(1);
JSONObject object8=array.getJSONObject(2);
System.out.println(object6.getString("name"));
System.out.println(object6.getInt("age"));
System.out.println(object7.getString("name"));
System.out.println(object7.getInt("age"));
System.out.println(object8.getString("name"));
System.out.println(object8.getInt("age"));
System.out.println(); //4.解析第5个字符串--遇到大括号{}--创建对象--遇到[]--创建数组--遇到{}--创建对象
String string5 = "{persons:[{name:'zhangsan',age:20},{name:'lisi',age:21},{name:'wangwu',age:22}]}";
System.out.println("第5个字符串:");
JSONObject object9=new JSONObject(string5);
JSONArray array2=object9.getJSONArray("persons");
JSONObject object10=array2.getJSONObject(0);
JSONObject object11=array2.getJSONObject(1);
JSONObject object12=array2.getJSONObject(2);
System.out.println(object10.getString("name"));
System.out.println(object10.getInt("age"));
System.out.println(object11.getString("name"));
System.out.println(object11.getInt("age"));
System.out.println(object12.getString("name"));
System.out.println(object12.getInt("age"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


运行结果:

Java对【JSON数据的解析】--官方解析法的更多相关文章

  1. 用JAVA进行Json数据解析(对象数组的相互嵌套)

    这段时间我们在做一个英语翻译软件的小小小APP,涉及到了对Json数据的解析,所以特地来总结一下! 假设我们要对如下数据进行解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相 ...

  2. Android 之 json数据的解析(jsonReader)

    json数据的解析相对而言,还是比较容易的,实现的代码也十分简单.这里用的是jsonReade方法来进行json数据解析. 1.在解析之前,大家需要知道什么是json数据. json数据存储的对象是无 ...

  3. Java之JSON数据

    特别注意:使用JSON前需要导包 操作步骤地址:http://blog.csdn.net/baidu_37107022/article/details/70876993 1.定义 JSON(JavaS ...

  4. HttpURLConnection从网上获取Json数据并解析详解

    HttpURLConnection从网上获取Json数据并解析 1.HttpURLConnection请求数据的步骤 (1)构造一个URL接口地址: URL url = new URL("h ...

  5. iOS开发网络篇—JSON数据的解析

    iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...

  6. javascript中 json数据的解析与序列化

    首先明确一下概念: json格式数据本质上就是字符串: js对象:JavaScript 中的几乎所有事务都是对象:字符串.数字.数组.日期.函数,等等. json数据的解析: 就是把后端传来的json ...

  7. js处理json数据,java处理json数据

    一.js处理json数据 处理办法之一是把本机json数据或远程返回json数据用eval函数,使之变成DOM对象. 例如: var people = { "programmers" ...

  8. Java对【JSON数据的解析】--fastjson解析法

    要求:解析下面JSON数据 String string = "{no:1,name:'Android',employees:[{name:'zhangsan',age:20},{name:' ...

  9. Java对【JSON数据的解析】--Gson解析法

    Gson和fastjson分别为谷歌和阿里巴巴对JSON数据进行处理封装的jar包 两者异同点: 相同点:都是根据JSON数据创建相应的类 不同点: 1.调用方式区别 谷歌:方法都是非静态的,需要先创 ...

随机推荐

  1. Java集合的区别和选择

              Collection |--List       有序,可重复 |--ArrayList 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高 |--Vector 底层数据结构 ...

  2. 读书笔记 effective c++ Item 54 让你自己熟悉包括TR1在内的标准库

    1. C++0x的历史渊源 C++标准——也就是定义语言的文档和程序库——在1998被批准.在2003年,一个小的“修复bug”版本被发布.然而标准委员会仍然在继续他们的工作,一个“2.0版本”的C+ ...

  3. 【2017-04-25】winform公共控件、菜单和工具栏、Tab和无边框窗体制作

    一.公共控件 1. Button   按钮 + 布局 - AutoSize   按钮尺寸自动适应里面内容的长度 - Location    位置 - Margin       控件与控件外边距 - S ...

  4. 微坑---微信小程序ios上时间字符串转换为时间戳时,在开发工具上和安卓手机上运行成功

    给定一个时间字符串  var time="2017-02-27 16:42:53" js有三种转换为时间戳的方法:1.var timestamp = Date.parse(time ...

  5. 让div自适应浏览器窗口居中显示

    今天做 banner 时发现一个问题,就是浏览器窗口水平拉伸时 banner 图未能居中,所以网上找了些资料,自己写了个小 demo html代码: <div class="div1& ...

  6. Failed to read artifact descriptor for xxx:jar 的Maven项目jar包依赖配置的问题解决

    在开发的过程中,尤其是新手,我们经常遇到Maven下载依赖jar包的问题,也就是遇到“Failed to read artifact descriptor for xxx:jar”的错误. 对于这种非 ...

  7. Nginx 常用配置整理

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  8. 欲练JS,必先攻CSS——前端修行之路(码易直播)

    以下是直播大概内容的文字版: 感谢大家今天来到直播间收听本期的码易直播.今天我讲的主题是css,具体聊一下我大概的css学习历史,分享一些干货,希望这次分享对大家有所启发和帮助. 个人的css历史: ...

  9. 【源码学习】之requirejs

    对于现在的前端生态来说,requirejs是有点过时了,webpack帮我们包干了一切.但是对于学习源码这件事情来说,永远是不过时的! 最近稍微闲下来了一点,就着以前做过的项目,我也来看看requir ...

  10. [刷题]算法竞赛入门经典(第2版) 5-2/UVa1594 - Ducci Sequence

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,20 ms) //UVa1594 - Ducci Sequence #include< ...