栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSON属性名不知道时,对JSON数据的解析——转数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSON属性名不知道时,对JSON数据的解析——转数组

JSON对象属性名称不定时,对JSON数据进行解析

如下:想要取得data数组下的每组数据的

  • ——>replies——>(变动id)——>self——>content的内容
{
    "data": [{
        "nick_name": "u5c0fu57ce",
        "content": "u6c34u7535u8d39u4e0du6309u7269u4ef7u5c40u5b9au4ef7u6536u53d6u3002
nu7535u7ebfu7535u7f06u7ebfu8defu8001u5316u751au81f3u7834u635fuff0cu5bb9u6613u53d1u751fu6f0fu7535u3001u89e6u7535u5371u9669u3002", "replies": { "164955758975185775": { "self": { "nick_name": "u9ad8u53efu60e0", "content": "u5df2u5bf9u7269u4e1au6536u8d39u8fdbu884cu76d1u7ba1uff0cu5982u6709u8fddu89c4u884cu4e3au5c06u5904u7f5au6574u6539u3002[u63e1u624b]nu5c06u8fdbu4e00u6b65u6392u67e5u7535u8defu7ba1u9053u95eeu9898uff0cu611fu8c22u4f60u7684u53cdu9988u3002", } } }, }, { "nick_name": "u968fu98ce", "content": "u6709u7684u5145u7535u6869u574fu4e86uff0cu5e0cu671bu5febu901fu4feeu7406u4e00u4e0b", "replies": { "164955729095210928": { "self": { "nick_name": "u9ad8u53efu60e0", "content": "u8c22u8c22u4f60u7684u5efau8baeuff0cu5df2u91c7u7eb3[u63e1u624b]", } } }, }, { "nick_name": "Bruce.Li", "content": "u6211u4eecu7684u5c0fu533au5bf9u6211u6765u8bf4u5c31u662fu5929u5802uff0cu5230u5904u90fdu662fu6811u6728u82b1u8349uff0cu51e0u4e4eu6ca1u6709u7a7au767du7684u571fu58e4u3002u800cu6700u8fd1u6211u5374u53d1u73b0u4e00u4e2au5f88u4e25u91cdu7684u95eeu9898u3002u6d47u5b8cu82b1u7684u6c34u7ecfu5e38u653eu8086u5730u6d41u6dccu7740uff0cu6c34u7ba1u5b50u968fu610fu88abu4e22u5728u4e00u4e2au6811u5751u91ccuff0cu9a6cu8defu4e0au6d41u6dccu4e86u79efu6c34uff0cu4e00u8fc7u8f66u5c31u4f1au6e85u8d77u6ce5u6c34u3002", "replies": { "164955455236202926": { "self": { "nick_name": "u9ad8u53efu60e0", "content": "[u5472u7259]u597du7684uff0cu611fu8c22u60a8u7684u5efau8baeuff0cu5c06u91c7u53d6u6539u8fdbu63aau65bd", } } }, }] }
  • 须知:1、对json对象格式的数据,我们可以通过属性名来得到对应的数据

    JSONObject data= jsonData.getJSONObject(i);
                String nick_username=data.getString("nick_name");
    
  • 2、对于数组类型的数据,可以通过遍历。该数据的data 就相当于一个数组

  • 拿到每一条数据下的self 要先进入 "164955758975185775"这种变动ID层

    • 先进入replies层,这个直接利用先遍历数组data,再进行getstring(“replies”)拿到

    • 再将replies的数据转化为数组——json对象的数据转为数组,才可以不考虑属性名,利用遍历来获得数据。这是关键一步

    • 接下来就是遍历进入变动的ID层

    • ID层后 就可以再根据JSON对象 的self属性拿到 self层数据

    • 下同 拿到content

      JSONObject repliesData = JSONObject.parseObject(replies);
      JSONObject selfData=(JSONObject) repliesData.values().toArray()[0];
      
具体实现:
public class JSON_advice {
    public static String[] rply;
    public static String[] usercontent;
    public static String[] creatTime;
    public static String[] nickName;
    public  static  Map map ;
    public static Map Advice() throws IOException {
        rply=new String[50];
        usercontent=new String[50];
        creatTime=new String[50];
        nickName=new String[50];
        map= new HashMap();
        String fileName = "C:\Users\stype\Desktop\json.txt";
        String s = Files.readString(Paths.get(fileName));
        JSONObject jsonObject = JSONObject.parseObject(s); //转为json
        JSONArray jsonData=jsonObject.getJSONArray("data");
        for (int i = 0; i < jsonData.size(); i++) {
            JSONObject data= jsonData.getJSONObject(i);
            String nick_username=data.getString("nick_name");
            String content=data.getString("content");
            String replies=data.getString("replies");
            String creattime=data.getString("created_at");
            JSONObject repliesData = JSONObject.parseObject(replies);
            JSONObject selfData=(JSONObject) repliesData.values().toArray()[0];//obj转数组
            JSONObject self1 = JSONObject.parseObject(selfData.getString("self"));
            String rely=self1.getString("content");
            rply[i]=rely;
            usercontent[i]=content;
            creatTime[i]=creattime;
            nickName[i]=nick_username;
        }
        map.put("rply",rply );
        map.put("usercontent",usercontent );
        map.put("creatTime",creatTime );
        map.put("nicksName",nickName );
        return map;
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821158.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号