在使用第三方api的使用,有时候会从网络中获得json数据,所以说我们将如何解析json数据?

下面小编将通过以下几点来进行json的讲解

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of theJavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

2.Json数据类型

2-1.json对象

2-2.json数组

ps:JSONObject与JSONArray的区别

(JSON数组)

(JSON数组)

3.解析JSON数据(小编使用的GSON进行json数据的解析)

3-1 【JSONObject的解析】

下面是一个json文件:

{

"resultcode": "200",

"reason": "successed!",

"result": {

"sk": {

"temp": "24",

"wind_direction": "西南风",

"wind_strength": "2级",

"humidity": "51%",

"time": "10:11"

},

"today": {

"temperature": "16℃~27℃",

"weather": "阴转多云",

"weather_id": {

"fa": "02",

"fb": "01"

},

"wind": "西南风3-4 级",

"week": "星期四",

"city": "滨州",

"date_y": "2015年06月04日",

"dressing_index": "舒适",

"dressing_advice": "建议着长袖T恤、衬衫加单裤等服装。年老体弱者宜着针织长袖衬衫、马甲和长裤。",

"uv_index": "最弱",

"comfort_index": "",

"wash_index": "较适宜",

"travel_index": "",

"exercise_index": "较适宜",

"drying_index": ""

},

"future": [

{

"temperature": "16℃~27℃",

"weather": "阴转多云",

"weather_id": {

"fa": "02",

"fb": "01"

},

"wind": "西南风3-4 级",

"week": "星期四",

"date": "20150604"

},

{

"temperature": "20℃~32℃",

"weather": "多云转晴",

"weather_id": {

"fa": "01",

"fb": "00"

},

"wind": "西风3-4 级",

"week": "星期五",

"date": "20150605"

},

{

"temperature": "23℃~35℃",

"weather": "多云转阴",

"weather_id": {

"fa": "01",

"fb": "02"

},

"wind": "西南风3-4 级",

"week": "星期六",

"date": "20150606"

},

{

"temperature": "20℃~33℃",

"weather": "多云",

"weather_id": {

"fa": "01",

"fb": "01"

},

"wind": "北风微风",

"week": "星期日",

"date": "20150607"

},

{

"temperature": "22℃~34℃",

"weather": "多云",

"weather_id": {

"fa": "01",

"fb": "01"

},

"wind": "西南风3-4 级",

"week": "星期一",

"date": "20150608"

},

{

"temperature": "22℃~33℃",

"weather": "阴",

"weather_id": {

"fa": "02",

"fb": "02"

},

"wind": "西南风3-4 级",

"week": "星期二",

"date": "20150609"

},

{

"temperature": "22℃~33℃",

"weather": "多云",

"weather_id": {

"fa": "01",

"fb": "01"

},

"wind": "南风3-4 级",

"week": "星期三",

"date": "20150610"

}

]

},

"error_code": 0

}

我们进行解析(解析一部分):

package cn.edu.bzu.json;

import java.io.FileNotFoundException;

import java.io.FileReader;

import com.google.gson.JsonArray;

import com.google.gson.JsonIOException;

import com.google.gson.JsonObject;

import com.google.gson.JsonParser;

import com.google.gson.JsonSyntaxException;

public class Read {

public static void main(String args[]){

JsonParser parse =new JsonParser(); //创建json解析器

try {

JsonObject json=(JsonObject) parse.parse(new FileReader("weather.json")); //创建jsonObject对象

System.out.println("resultcode:"+json.get("resultcode").getAsInt()); //将json数据转为为int型的数据

System.out.println("reason:"+json.get("reason").getAsString()); //将json数据转为为String型的数据

JsonObject result=json.get("result").getAsJsonObject();

JsonObject today=result.get("today").getAsJsonObject();

System.out.println("temperature:"+today.get("temperature").getAsString());

System.out.println("weather:"+today.get("weather").getAsString());

} catch (JsonIOException e) {

e.printStackTrace();

} catch (JsonSyntaxException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

}

输出结果:

3-2 【JSONArray的解析】

下面是一个json文件

{"cat":"it","language":[

{"id":1,"ide":"eclipse","name":Java},

{"id":2,"ide":"XCode","name":"Swift"},

{"id":3,"ide":"Visual Stdio","name":"C#"}

],"pop":true}

我们进行解析:

package cn.edu.bzu.json;

import java.io.FileNotFoundException;

import java.io.FileReader;

import com.google.gson.JsonArray;

import com.google.gson.JsonIOException;

import com.google.gson.JsonObject;

import com.google.gson.JsonParser;

import com.google.gson.JsonSyntaxException;

public class ReadJSON {

public static void main(String args[]){

try {

JsonParser parser=new JsonParser(); //创建JSON解析器

JsonObject object=(JsonObject) parser.parse(new FileReader("test.json")); //创建JsonObject对象

System.out.println("cat="+object.get("cat").getAsString()); //将json数据转为为String型的数据

System.out.println("pop="+object.get("pop").getAsBoolean()); //将json数据转为为boolean型的数据

JsonArray array=object.get("language").getAsJsonArray(); //得到为json的数组

for(int i=0;i

System.out.println("---------------");

JsonObject subObject=array.get(i).getAsJsonObject();

System.out.println("id="+subObject.get("id").getAsInt());

System.out.println("name="+subObject.get("name").getAsString());

System.out.println("ide="+subObject.get("ide").getAsString());

}

} catch (JsonIOException e) {

e.printStackTrace();

} catch (JsonSyntaxException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

}

输出结果:

3-3 【分析】

我们通过Gson进行解析,所以在使用前需要导入Gson.jar

解析json数据时,

1.需要进行创建Gson解析器

2.创建JSONObject对象

3.将json数据转为为相应的数据

4.源代码下载:

java解析json_JAVA解析JSON数据相关推荐

  1. java 格式化json_JAVA 格式化JSON数据并保存到json文件中的实例

    使用fastjson格式化json数据并保存到文件 /** * 将JSON数据格式化并保存到文件中 * @param jsonData 需要输出的json数 * @param filePath 输出的 ...

  2. gson解析mysql城市json数据_Gson解析复杂的json数据

    首先我们需要定义一个序列化的Bean,这里采用内部类的形式,看起来会比较清晰一些: 1 public classJsonBean {2 publicString a;3 public Listb;4 ...

  3. Android中怎获取json,Android应用中如何解析获取的json数据

    Android应用中如何解析获取的json数据 发布时间:2020-11-24 17:10:08 来源:亿速云 阅读:107 作者:Leah 这篇文章将为大家详细讲解有关Android应用中如何解析获 ...

  4. Esp8266 进阶之路28 【高级篇】教你轻松自如使用cJson在乐鑫 esp8266 如何解析一段json数据以及如何生成一段json数据。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  5. java百度天气接口解析_Java调用天气接口(百度天气)解析返回的JSON数据

    简介:本文详细讲述了通过Java调用百度天气接口的方法,取得返回的JSON格式的数据,并且通过第三方包解析JSON格式的数据. 通过百度天气API调用网络编程接口接收返回的JSON格式的数据. 关于百 ...

  6. java解析与生成json数据的四种方式,比如将json字符串转为json对象或json对象转为json字符串

    文章目录 1. 详说json 1.1 何为json 1.2 json语法 2. Java解析与生成JSON的四种方式 2.1 传统方式 2.2 利用Jackson方式 2.3 利用Gson方式 2.4 ...

  7. Java解析中国城市Json数据

    由于城市列表基本是固定不变的,App可以读取本地文件来显示城市列表,这里使用Json数据把城市列表保存起来,在代码中解析Json数据显示就方便,在此把它记录下来,这里的城市列表是根据地图得到的,方便以 ...

  8. java 生成json数据_解析和生成JSON数据

    JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值.它对外部(External: 应用toString()方法输出的数值)调 ...

  9. Java调用接口获取json数据解析后保存到数据库

    文章目录 1.在yml文件中配置自己定义的接口URL 2.在Controller中添加请求方法和路径 3.在Service中添加方法 4.在ServiceImpl中实现方法 今天给大家带来一个调用接口 ...

最新文章

  1. 从表达式到函数:表面的简洁
  2. [渝粤教育] 南京信息职业技术学院 电工电子技术基础 参考 资料
  3. Swing 学习小记
  4. Hadoop生态系统学习路线
  5. F - 数据结构实验之链表四:有序链表的归并
  6. 保送清华成博士,华为 12 年搞通信,他为何如此看待 5G ?| 人物志
  7. 《Spring2之站立会议5》
  8. 一个肉夹馍引起的思考
  9. 对所谓原生软件的偏执
  10. PGM:概率论基础知识
  11. python3.9出了吗_Python 3.9正式版,新特性提前一睹为快
  12. php 利用qrcode生成二维码
  13. web全栈工程师进阶学习线路图
  14. appfabric 性能监视篇
  15. 分类变量logistic回归分析--1
  16. 教育教学教师竞聘说课PPT模板
  17. Python学习记录—— 绘制百分比堆积柱状图
  18. 世界曾经有这样一个中国
  19. 如何用Python爬虫爬取网页免费小说
  20. 一个游戏创业者如何跳出模式

热门文章

  1. .NET Core2使用Azure云上的Iot-Hub服务
  2. .NET Core开发日志——从ASP.NET Core Module到KestrelServer
  3. 听说你开发.NET还在用VS,小哥哥给你推荐全平台的Rider
  4. .NET 传奇 1.0 的出版过程,以及未来计划
  5. 【ArcGIS风暴】ArcGIS自动生成标识码(BSM)的两种方法案例教程
  6. Android之实现夸克浏览器书签和历史页面滑动时候右上角图标切换效果
  7. Android之解决ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题
  8. Fiddler之为什么我没有抓到网络请求的js链接
  9. linux shell之$?和得到联合使用命令的结果
  10. C和指针之字符串简单实现 strcpy、strcat、strstr函数