ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

json的Java解析

2021-07-22 14:33:57  阅读:191  来源: 互联网

标签:Java name 对象 JSON json 解析 Teacher String


目录

JSON简介

  • JSON: JavaScript Object Notation JS对象简谱,是一种轻量级的数据交换格式

样例

{
  "persons": [
    {
      "person": {
        "name": "张三",
        "age": 18,
        "hobby": [
          "游泳",
          "音乐"
        ]
      }
    },
    {
      "person": {
        "name": "李四",
        "age": 20
      }
    }
  ]
}

对象格式

一个对象,由一个大括号表示
括号中 描述对象的属性与函数,通过键值对来描述对象的属性函数
格式:
键与值之间使用冒号连接, 多个键值对之间使用逗号分隔
键值对的应使用引号包围(JS中,不加引号可以解析,但Java会报错)
键值对的,可以是JS中的任意类型的数据

数组格式

使用中括号表示数组
在JSON格式中可以与对象互相嵌套
[元素1,元素2…]


Java解析JSON

常用的解析工具有两个:fastjson、gson
以上两种都需要引入第三方jar包,使用简便

  • 设置教师类,用于测试JSON相关解析
public class Teacher {
    private String id;// 序号
    private String name;// 姓名
    private int age;// 年龄
    private String[] subjects;// 任课科目
	
	// 为缩减篇幅,构造器、getter/setter、toString等方法不展示
}

fastjson

  • 引入jar包,本文使用的是包为:fastjson-1.2.70.jar
  • 需自行下载jar包,或使用目前最新的maven依赖
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>

对象转json

// 新建对象
Teacher t = new Teacher("123", "张三", 48, new String[]{"数学", "地理", "历史"});
// 解析为JSON字符串
String json = JSON.toJSONString(t);
// 输出JSON字符串
System.out.println(json);

执行结果:{“age”:48,“id”:“123”,“name”:“张三”,“subjects”:[“数学”,“地理”,“历史”]}

json转对象

// json字符串
String json = "{\"age\":48,\"id\":\"123\",\"name\":\"张三\",\"subjects\":[\"数学\",\"地理\",\"历史\"]}";
// json字符串转为对象
Teacher teacher = JSON.parseObject(json, Teacher.class);
// 输出
System.out.println(teacher);

执行结果:Teacher{id=‘123’, name=‘张三’, age=48, subjects=[数学, 地理, 历史]}

  • fastjson的使用很简单,通过方法名就能理解并使用
  • 下面是将字符串转为JSON对象的方法
// 将json字符串转为JSONObject
// JSONObject的使用近似于Map
JSONObject jsonObject = JSON.parseObject(jsonStr);
// 将json字符串转为JSONArray
// JSONObject的使用近似于List
JSONArray jsonArray = JSON.parseArray(jsonStr);
// 还有很多相关方法都见名知意,不多赘述

gson

  • gson的使用与fastjson大同小异,都有相似的功能
  • 引入jar包,本文使用的是包为:gson-2.8.6.jar
  • 需自行下载jar包,或使用目前最新的maven依赖
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.7</version>
</dependency>

对象转json

// 新建对象
Teacher t = new Teacher("123", "张三", 48, new String[]{"数学", "地理", "历史"});
// 解析为JSON字符串
String json = new Gson().toJson(t);
// 输出JSON字符串
System.out.println(json);

执行结果:{“id”:“123”,“name”:“张三”,“age”:48,“subjects”:[“数学”,“地理”,“历史”]}

json转对象

// json字符串
String json = "{\"age\":48,\"id\":\"123\",\"name\":\"张三\",\"subjects\":[\"数学\",\"地理\",\"历史\"]}";
// json字符串转为对象
Teacher teacher = new Gson().fromJson(json, Teacher.class);
// 输出
System.out.println(teacher);

执行结果:Teacher{id=‘123’, name=‘张三’, age=48, subjects=[数学, 地理, 历史]}

  • 在开发当中,json十分常用,经常会使用json格式的数据进行前后端的交互。网上有很多json的在线工具(解析、视图、格式化等),方便开发使用

标签:Java,name,对象,JSON,json,解析,Teacher,String
来源: https://blog.csdn.net/weixin_43882141/article/details/118996962

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有