JSON数据结构特点及Java解析JSON的方法

JSON数据结构简介

JSON数据结构一种与开发语言无关的、轻量级的数据存储格式,全称JavaScript Object
Notation,一种数据格式的标准规范,起初来源于JavaScript这门语言,后来随着使用的广泛,几乎每门开发语言都有处理JSON的API 。

优点:易于人的阅读和编写,易于程序解析与生产,它相比xml格式的数据结构,占用的数据控件更小。

JSON数据结构的表示如下:

JSON 表示对象

JSON数据结构表示对象一般用大括号{},大括号里面是一种Key-Value的存储形式 ,如下

{"key1":value,"key2":value,"key3":value,...}
  • key 一般是一个字符串
  • value 可以是字符串,数字,boolean,null
{ "age":30,"name":"张三", "isstudent":true }

Java解析Json需先引入JSON解析包,可先自行百度下载JSON解析包并导入工程
在这里插入图片描述

Java解析JSON方法如下:

try {
    JSONObject jsonObject = new JSONObject(s);
    String name = jsonObject.getString("name");
    int age = jsonObject.getInt("age");
    System.out.println("name="+name +" age=" + age);
} catch (JSONException e) {
    e.printStackTrace();
}

JSON 格式表示数组

JSON数据结构表示数组一般用中括号[],里面全部是value,value之间用逗号给开

[value,value,...]
  • value 可以是字符串,数字,boolean,null
[ "张三", "李四", "王五" ]

Java解析JSON方法如下:

 JSONArray jsonObject = new JSONArray(result);
 for (int i = 0 ; i < jsonObject.length() ; i  ++){
     String s = (String) jsonObject.get(i);
     System.out.println( "s :" + s);
 }

JSON嵌套

JSON数据嵌套1

在前面介绍的JSON数据结构表示对象一般用大括号{},大括号里面是一种Key-Value的存储形式

{"key1":value,"key2":value,"key3":value,...}
  • value的值除了可以是字符串,数字,boolean,null之外,也可以是一个JSON对象
{ "age":20,"name":"张三", "isstudent":true,"class":{"grade":"18级","classname":"计算机专业"} }

Java解析方法如下:

try {
    JSONObject json = new JSONObject(jsonString);
    JSONObject jsonObject = json.getJSONObject("class");
    String classname = jsonObject.getString("classname");
    String grade = jsonObject.getString("grade");
    System.out.println("classname:"+ classname +" grade:" + grade);

} catch (Exception e) {
    e.printStackTrace();
}

JSON数据嵌套2

在前面介绍的JSON数据结构表示对象一般用大括号{},大括号里面是一种Key-Value的存储形式

{"key1":value,"key2":value,"key3":value,...}
  • value也可以是一个JSON数组
{ "grade":"18级","classname":"计算机专业","students":["张三","李四","王五"] }

对于这种数据结构Java解析方法

JSONObject jsonObject = new JSONObject(result);
String grade = jsonObject.getString("grade");
System.out.println("grade" + grade);
JSONArray jsonArray = jsonObject.getJSONArray("students");
for (int i = 0; i < jsonArray.length(); i++) {
    String s = (String) jsonArray.get(i);
    System.out.println("s:" + s);
}

总结:JSON的key对应的value 可以是整型、字符型、布尔型、null、JSON数组、JSON对象

JSON数据嵌套3

JSON数据结构可以灵活多样,JSON对象和JSON数据可以相互嵌套

{ "grade":"18级","classname":"计算机专业","students":[ { "id":"001","age":30,"name":"张三", "isstudent":false }, { "id":"002","age":25,"name":"李四", "isstudent":true }, { "id":"003","age":26,"name":"王五", "isstudent":true } ]}

Java解析JSON方法

JSONObject jsonObject = new JSONObject(result);
String grade = jsonObject.getString("grade");
System.out.println("grade" + grade);
JSONArray jsonArray = jsonObject.getJSONArray("students");
for (int i = 0; i < jsonArray.length(); i++) {
    JSONObject jsonObject1 = (JSONObject) jsonArray.get(i);
    String name1 = jsonObject1.getString("name");
    int age = jsonObject1.getInt("age");
    System.out.println("name1:" + name1);
    System.out.println("age:" + age);
}
发布了5 篇原创文章 · 获赞 14 · 访问量 434

猜你喜欢

转载自blog.csdn.net/huweiliyi/article/details/105370470