有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JSON对象中的java JSON数组返回null

我想读JSON数组

"connectTo":[   
    {
        "url": "wss://localhost/opt/siml"
    }   
],

从JSON字符串:

{

"cluster":{
    "enabled":"true",
    "clusterName":"cluster0",
    "simlURL":"wss://localhost:5443/opt/siml"
},

"simlFieldWatchUrl":"fieldwatchholder.jsp",

"persistFolder":"clusterconfig/concentratorBPersist",

"sslCrtFile":"clusterconfig/certDirB/siml.crt",
"sslKeyFile":"clusterconfig/certDirB/siml.key",

"SIMLID":"TestServerB",

"localWebProxyServer":"localhost",
"localWebProxyPort":8080,
"SIMLProxyPort":8400,
"SIMLWebPort":8300,

"turnOnExtraSIMLWebSocket":"false",

"autoPromoteNewConnectionsFromPurgatory":true,

"connectTo":[   
    {
        "url": "wss://localhost/opt/siml"
    }   
],

"tempLogins":[
    {
        "username":"root",
        "password":"root"
    }
]

}

我读取url的代码是:

JSONArray connectTo = (JSONArray) config.get("connectTo");
                System.out.println("Connect to : " + connectTo);
                for (Object o : connectTo) {
                    JSONObject connect = (JSONObject) o;
                    String url = (String) connect.get("url");
                    System.out.println(url);
                }

但是系统。出来println(“连接到:”+connectTo)这又回来了 连接到:[]

我读了一些老问题,但没有得到满意的答案。请帮忙。并提前向您表示感谢:)


共 (3) 个答案

  1. # 1 楼答案

    我让它像这样工作,不确定这是否有帮助:

    var json = {
      "connectTo": [{
        "url": "wss://localhost/opt/siml"
      }]
    };
    
    for (var o = 0; o < json.connectTo.length; o++) {
      console.log(json.connectTo[o].url);
    }
    
  2. # 2 楼答案

    我只是假设config是一个JSONObject

    JSONArray connectTo = config.getJSONArray("connectTo");
    

    config.get()返回一个对象,而config.getJSONArray()返回一个JSONArray

  3. # 3 楼答案

    试试这个:

    JSONArray connectTo =config.getJSONArray("connectTo");
    
                        System.out.println("Connect to : " + connectTo);
                        for (int i=0;i<connectTo.length();i++) 
        {
                            JSONObject connect = connectTo.getJSONObject(i);
                            String url = connect.get("url");
                            System.out.println(url);
                        }