添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
聪明的炒粉  ·  Android中@+id 与 ...·  9 月前    · 
打篮球的海豚  ·  cherry pick操作git ...·  1 年前    · 
一身肌肉的大象  ·  python ...·  1 年前    · 
package com.rf.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
 * @description:
 * @author: xiaozhi
 * @create: 2020-05-21 20:51
public class TestJSON {
     * JSON实际上也是键值对("key":"value")
     * key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)
     * value如果是字符串,用jsonobj.getString("key")获取
     * value如果是数  字,用jsonobj.getIntValue("key"),jsonobj.getFloatValue("key"),jsonobj.getInteger("key")等基本数据类型及其包装类的方法获取
     * value如果是布尔值,用jsonobj.getBoolean("key"),jsonobj.getBooleanValue("key")获取
     * value如果是数  组,用jsonobj.getJSONArray("key")获取
     * value如果是Object对象,用jsonobj.get("key"),获取
     * value如果是JSONObject对象,用jsonobj.getJSONObject("key")获取
     * 该方法用于将已有的json字符串转换为json对象,并取出该对象中相应的key对应的value值
     * 将已有的字符串转换成jsonobject,用JSON.parseObject(jsonStr)方法
     * json中只要是{}就代表一个JSONObject,[]就代表一个JSONArray
     * 获取JSONObject对象用JSONObject jsonobject.getJSONObject("key")方法
     * 获取JSONArray对象用JSONObject jsonobject.getJSONArray("key")方法
    private static void parseJSON() {
        //以下是一个json对象中嵌套一个json子对象
        String JsonData = "{\n" +
                "    \"name\":\"张三\",\n" +
                "    \"id\":10,\n" +
                "    \"sysProperty\": {\n" +
                "        \"dataTimestamp\":\"1589980440812\",\n" +
                "        \"datastream\":\"3300_0_5750\",\n" +
                "        \"deviceId\":\"598766392\"\n" +
                "    }\n" +
                "}";
        JSONObject jsonobj = JSON.parseObject(JsonData); //将json字符串转换成jsonObject对象
        /***获取JSONObject中每个key对应的value值时,可以根据实际场景中想得到什么类型就分别运用不到的方法***/
        System.out.println(jsonobj.get("name")); //取出name对应的value值,得到的是一个object
        System.out.println(jsonobj.getString("name")); //取出name对应的value值,得到的是一个String
        System.out.println(jsonobj.getIntValue("id")); //取出id对应的value值,得到的是一个int
        System.out.println(jsonobj.get("sysProperty")); //取出sysProperty对应的value值,得到的是一个object
        System.out.println(jsonobj.getString("sysProperty"));//取出sysProperty对应的value值,得到的是一个String
        System.out.println(jsonobj.getJSONObject("sysProperty")); //取出sites对应的value值,得到一个JSONObject子对象
        //取出嵌套的JSONObject子对象中dataTimestamp对应的value值,必须用getJSONObject()先获取JSONObject
        System.out.println(jsonobj.getJSONObject("sysProperty").getString("dataTimestamp"));
    public static void main(String[] args) {
        parseJSON();

2、输出结果如下图:
在这里插入图片描述

二、解析json对象中包含数组,数组中又包含json子对象和子数组

1、代码如下:

package com.rf.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
 * @description:
 * @author: xiaozhi
 * @create: 2020-05-21 20:51
public class TestJSON {
     * JSON实际上也是键值对("key":"value")
     * key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)
     * value如果是字符串,用jsonobj.getString("key")获取
     * value如果是数  字,用jsonobj.getIntValue("key"),jsonobj.getFloatValue("key"),jsonobj.getInteger("key")等基本数据类型及其包装类的方法获取
     * value如果是布尔值,用jsonobj.getBoolean("key"),jsonobj.getBooleanValue("key")获取
     * value如果是数  组,用jsonobj.getJSONArray("key")获取
     * value如果是Object对象,用jsonobj.get("key"),获取
     * value如果是JSONObject对象,用jsonobj.getJSONObject("key")获取
     * 该方法用于将已有的json字符串转换为json对象,并取出该对象中相应的key对应的value值
     * 将已有的字符串转换成jsonobject,用JSON.parseObject(jsonStr)方法
     * json中只要是{}就代表一个JSONObject,[]就代表一个JSONArray
     * 获取JSONObject对象用JSONObject jsonobject.getJSONObject("key")方法
     * 获取JSONArray对象用JSONObject jsonobject.getJSONArray("key")方法
    private static void parseJSON() {
        String JsonData = "{\n" +
                "    \"name\":\"课程\",\n" +
                "    \"id\":3,\n" +
                "    \"sysProperty\": [\n" +
                "        { \"name\":\"java课程\", \"info\":[ \"js\", \"sql\", \"rabbitmq\" ] },\n" +
                "        { \"name\":\"spring课程\", \"info\":[ \"spring简介\", \"spring注解\", \"spring配置文件\" ] },\n" +
                "        { \"name\":\"python课程\", \"info\":[ \"语句\", \"语法\" ] }\n" +
                "    ]\n" +
                "}";
        JSONObject jsonobj = JSON.parseObject(JsonData); //将json字符串转换成jsonObject对象
        System.out.println(jsonobj.get("sysProperty"));
        System.out.println(jsonobj.getString("sysProperty"));
        System.out.println(jsonobj.getJSONArray("sysProperty")); //取出sysProperty对应的value值,得到一个JSONOArray对象
        System.out.println("----------------------------------------------");
        //System.out.println(jsonobj.getJSONObject("sysProperty")); 不能用该方法,因为sysProperty是一个JSONOArray对象
        //取出json对象中sysProperty对应数组中第一个json子对象的值
        System.out.println(jsonobj.getJSONArray("sysProperty").getJSONObject(0));
        System.out.println(jsonobj.getJSONArray("sysProperty").get(0));
        System.out.println(jsonobj.getJSONArray("sysProperty").getString(0));
        System.out.println("=====================================");
        //取出json对象中sysProperty对应数组中第一个json子对象下面info对应的嵌套子数组值
        System.out.println(jsonobj.getJSONArray("sysProperty").getJSONObject(0).getJSONArray("info"));
        //取出json对象中sysProperty对应数组中第一个json子对象下面info对应的嵌套子数组中第二个值
        System.out.println(jsonobj.getJSONArray("sysProperty").getJSONObject(0).getJSONArray("info").getString(1));
        System.out.println("####################################################");
        //依次取出json对象中sysProperty对应数组中的值
        JSONArray array = jsonobj.getJSONArray("sysProperty");
        getJsonArrayItem(array);
        System.out.println("--------------------------------------");
        //依次取出json对象中sysProperty对应数组中第二个json子对象下面info对应的嵌套子数组值
        JSONArray arr = jsonobj.getJSONArray("sysProperty").getJSONObject(1).getJSONArray("info");
        getJsonArrayItem(arr);
     * 依次取出JSONArray中的值
    private static void getJsonArrayItem(JSONArray array) {
        for (int i=0; i<array.size(); i++) {
            System.out.println(array.get(i));
    public static void main(String[] args) {
        parseJSON();

2、输出结果如下图:
在这里插入图片描述

一、解析json对象中嵌套一个json子对象示例1、代码如下:package com.rf.utils;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;/** * @description: * @author: xiaozhi * @create: 2020-05-21 20:51 */public class TestJSON { /** * JSON实际上也是键值对(" 这里我们就只讨论对象与 json 如何互相转换。 这里我们先创建好 Maven 项目,方便引入依赖,通过单元测试来实际检验我们不同的解析方式。 下面我们都使用 User 对象,先创建好我们需要的类。 User.java package org.example; public class User 2 {}大括号代表的是一个对象 3 双引号“”表示的是属性值 4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。 Fastjson的经常调用的方法 parseObject(String text);: 把JSON文本parse成JSONObject parse(String text);: 把JSON文本parse为JSONObject或者JSONArray key 必须是字符串,value 可以是.
Scala解析Json字符串的实例详解 1. 添加相应依赖        Json解析工具使用的 json-smart,曾经对比过Javafastjson、gson。Scala的json4s、lift-json。其 json-smart 解析速度是最快的。 net.minidev json-smart 2. Scala代码 package Test 1.浏览器支持的转换方式: (1)JSON.stringify(obj)将JSON转化为字符串。 (2)JSON.parse(string)将字符串转为JSON格式。 如下图所示: 2.javascript支持的转换方式 eval(’(’+b+’)’);可以将json字符串转换为json对象 注意:需要在json字符串外包裹一对小括号,ie8(兼容模式),ie7和ie6也可以使...
fastjson可以通过JSON.parseObject()方法来解析json字符串,例如: String jsonString = "{\"name\":\"张三\",\"age\":18}"; JSONObject jsonObject = JSON.parseObject(jsonString); String name = jsonObject.getString("name"); int age = jsonObject.getIntValue("age"); 这样就可以将json字符串解析成一个JSONObject对象,并从获取相应的属性值。
一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, 更多创作活动请看: 新星计划2023: https://marketing.csdn.net/p/1738cda78d47b2ebb920916aab7c3584?utm_source=csdn_ai_ada_redpacket 新星计划2023: https://marketing.csdn.net/p/1738cda78d47b2ebb920916aab7c3584?utm_source=csdn_ai_ada_redpacket 上传ChatGPT/计算机论文等资源,瓜分¥5000元现金: https://blog.csdn.net/VIP_Assistant/article/details/130196121?utm_source=csdn_ai_ada_redpacket 新人首创任务挑战赛: https://marketing.csdn.net/p/90a06697f3eae83aabea1e150f5be8a5?utm_source=csdn_ai_ada_redpacket Microsoft Edge功能测评!: https://activity.csdn.net/creatActivity?id=10403?utm_source=csdn_ai_ada_redpacket 职场解惑讨论会: https://activity.csdn.net/creatActivity?id=10427?utm_source=csdn_ai_ada_redpacket 可持续能源技术真的能改变世界吗?: https://activity.csdn.net/creatActivity?id=10425?utm_source=csdn_ai_ada_redpacket 无效数据,你会怎么处理?: https://activity.csdn.net/creatActivity?id=10423?utm_source=csdn_ai_ada_redpacket 物联网技术正在如何影响我们的生活: https://activity.csdn.net/creatActivity?id=10421?utm_source=csdn_ai_ada_redpacket 生物识别技术能否成为应对安全挑战的绝佳选择?: https://activity.csdn.net/creatActivity?id=10411?utm_source=csdn_ai_ada_redpacket 应届生如何提高职场竞争力: https://activity.csdn.net/creatActivity?id=10409?utm_source=csdn_ai_ada_redpacket 讯飞星火大模型将超越chatgpt?: https://activity.csdn.net/creatActivity?id=10407?utm_source=csdn_ai_ada_redpacket 职场新人备忘录: https://activity.csdn.net/creatActivity?id=10405?utm_source=csdn_ai_ada_redpacket “裸奔”时代下该如何保护网络隐私: https://activity.csdn.net/creatActivity?id=10401?utm_source=csdn_ai_ada_redpacket VR vs AR:哪种技术更有潜力改变未来?: https://activity.csdn.net/creatActivity?id=10399?utm_source=csdn_ai_ada_redpacket 蓝桥杯备赛指南分享: https://activity.csdn.net/creatActivity?id=10317?utm_source=csdn_ai_ada_redpacket