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++) {
                //...
            }

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

  • 相关阅读:
    Django的路由层 路由控制之有名分组
    Django的路由层 路由控制之简单配置
    django 静态文件配置
    基于Django实现的一个简单示例
    Java线程池Executor
    Java 多线程Thread
    Java 异常
    Elementary OS 使用fcitx安装搜狗词库、搜狗输入法(Ubuntu通用)
    Elementary OS常见软件(TIM、微信、企业微信)安装(二)
    dpkg 批量卸载
  • 原文地址:https://www.cnblogs.com/x666-6/p/14537042.html
Copyright © 2011-2022 走看看