zoukankan      html  css  js  c++  java
  • Fastjson 从JSON字符串中取值 操作示例

    转载自 https://my.oschina.net/u/3421709/blog/1542196

    package jsonDemo;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    import com.alibaba.fastjson.TypeReference;
    
    import java.util.HashMap;
    
    public class JSONDemo {
        public static void main(String[] args) {
            //自定义JSON字符串
            String json = "{"name":"卢本伟","age":24,"语录":[{"骚话1":"可以,不跟你多bb","骚话2":"表面兄弟"},{"骚话3":"卢本伟牛逼","骚话4":"给阿姨倒一杯卡布奇诺"}]}";
    
            //JSON字符串转换成JSONObject对象
            JSONObject jo = JSON.parseObject(json);
            System.out.println("初始JSONObject:
    " + jo + "
    ");
    
            //JSONObject对象取得some对应的JSONArray数组
            JSONArray jsarr = jo.getJSONArray("语录");
            System.out.println("JSONObject里面的JSONArray:
    " + jsarr + "
    ");
    
            //JSONArray对象通过getJSONObject(index)方法取得数组里面的JSONObject对象
            JSONObject ao = jsarr.getJSONObject(0);
            System.out.println("JSONObject里面的JSONArray里面的第一个JSONObject:
    " + ao + "
    ");
    
            //JSONobject对象通过key直接取得String的值
            String str = ao.getString("骚话1");
            System.out.println("JSONObject里面的JSONArray里面的第一个JSONObject里的键值对对Key取值:
    " + str + "
    ");
    
            System.out.println("=====================JSON字符串转换成map=========================");
            //Json字符串转换成map
            HashMap<String, Object> map = JSON.parseObject(String.valueOf(jo), new TypeReference<HashMap<String, Object>>() {});
            System.out.println(map.get("语录"));
            System.out.println(map.get("name"));
        }
    }
    


    输出结果如下:

    初始JSONObject:
    {"name":"卢本伟","语录":[{"骚话2":"表面兄弟","骚话1":"可以,不跟你多bb"},{"骚话4":"给阿姨倒一杯卡布奇诺","骚话3":"卢本伟牛逼"}],"age":24}
    
    JSONObject里面的JSONArray:
    [{"骚话2":"表面兄弟","骚话1":"可以,不跟你多bb"},{"骚话4":"给阿姨倒一杯卡布奇诺","骚话3":"卢本伟牛逼"}]
    
    JSONObject里面的JSONArray里面的第一个JSONObject:
    {"骚话2":"表面兄弟","骚话1":"可以,不跟你多bb"}
    
    JSONObject里面的JSONArray里面的第一个JSONObject里的键值对对Key取值:
    可以,不跟你多bb
    
    =====================JSON字符串转换成map=========================
    [{"骚话2":"表面兄弟","骚话1":"可以,不跟你多bb"},{"骚话4":"给阿姨倒一杯卡布奇诺","骚话3":"卢本伟牛逼"}]
    卢本伟

        要遍历JSONArray对象,可以通过size( )方法取得JSONArray的长度,JSONArray.getJSONObject(index)取得里面JSONObject对象;如:

       

            JSONArray jsarr = jo.getJSONArray("语录");
    
            for (int i = 0; i < jsarr.size();i++) {
                //...
            }

    ------------恢复内容开始------------

    转载自 

    package jsonDemo;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    import com.alibaba.fastjson.TypeReference;
    
    import java.util.HashMap;
    
    public class JSONDemo {
        public static void main(String[] args) {
            //自定义JSON字符串
            String json = "{"name":"卢本伟","age":24,"语录":[{"骚话1":"可以,不跟你多bb","骚话2":"表面兄弟"},{"骚话3":"卢本伟牛逼","骚话4":"给阿姨倒一杯卡布奇诺"}]}";
    
            //JSON字符串转换成JSONObject对象
            JSONObject jo = JSON.parseObject(json);
            System.out.println("初始JSONObject:
    " + jo + "
    ");
    
            //JSONObject对象取得some对应的JSONArray数组
            JSONArray jsarr = jo.getJSONArray("语录");
            System.out.println("JSONObject里面的JSONArray:
    " + jsarr + "
    ");
    
            //JSONArray对象通过getJSONObject(index)方法取得数组里面的JSONObject对象
            JSONObject ao = jsarr.getJSONObject(0);
            System.out.println("JSONObject里面的JSONArray里面的第一个JSONObject:
    " + ao + "
    ");
    
            //JSONobject对象通过key直接取得String的值
            String str = ao.getString("骚话1");
            System.out.println("JSONObject里面的JSONArray里面的第一个JSONObject里的键值对对Key取值:
    " + str + "
    ");
    
            System.out.println("=====================JSON字符串转换成map=========================");
            //Json字符串转换成map
            HashMap<String, Object> map = JSON.parseObject(String.valueOf(jo), new TypeReference<HashMap<String, Object>>() {});
            System.out.println(map.get("语录"));
            System.out.println(map.get("name"));
        }
    }
    


    输出结果如下:

    初始JSONObject:
    {"name":"卢本伟","语录":[{"骚话2":"表面兄弟","骚话1":"可以,不跟你多bb"},{"骚话4":"给阿姨倒一杯卡布奇诺","骚话3":"卢本伟牛逼"}],"age":24}
    
    JSONObject里面的JSONArray:
    [{"骚话2":"表面兄弟","骚话1":"可以,不跟你多bb"},{"骚话4":"给阿姨倒一杯卡布奇诺","骚话3":"卢本伟牛逼"}]
    
    JSONObject里面的JSONArray里面的第一个JSONObject:
    {"骚话2":"表面兄弟","骚话1":"可以,不跟你多bb"}
    
    JSONObject里面的JSONArray里面的第一个JSONObject里的键值对对Key取值:
    可以,不跟你多bb
    
    =====================JSON字符串转换成map=========================
    [{"骚话2":"表面兄弟","骚话1":"可以,不跟你多bb"},{"骚话4":"给阿姨倒一杯卡布奇诺","骚话3":"卢本伟牛逼"}]
    卢本伟

        要遍历JSONArray对象,可以通过size( )方法取得JSONArray的长度,JSONArray.getJSONObject(index)取得里面JSONObject对象;如:

       

            JSONArray jsarr = jo.getJSONArray("语录");
    
            for (int i = 0; i < jsarr.size();i++) {
                //...
            }

    ------------恢复内容结束------------

  • 相关阅读:
    打印九九乘法表
    PAT (Basic Level) Practice (中文) 1091 N-自守数 (15分)
    PAT (Basic Level) Practice (中文)1090 危险品装箱 (25分) (单身狗进阶版 使用map+ vector+数组标记)
    PAT (Basic Level) Practice (中文) 1088 三人行 (20分)
    PAT (Basic Level) Practice (中文) 1087 有多少不同的值 (20分)
    PAT (Basic Level) Practice (中文)1086 就不告诉你 (15分)
    PAT (Basic Level) Practice (中文) 1085 PAT单位排行 (25分) (map搜索+set排序+并列进行排行)
    PAT (Basic Level) Practice (中文) 1083 是否存在相等的差 (20分)
    PAT (Basic Level) Practice (中文) 1082 射击比赛 (20分)
    PAT (Basic Level) Practice (中文) 1081 检查密码 (15分)
  • 原文地址:https://www.cnblogs.com/x666-6/p/14537042.html
Copyright © 2011-2022 走看看