来自JSONArray的JSONArray在java中

时间:2015-06-27 08:06:41

标签: java json parsing

我需要从JSONArray获取JSONArray:

      JSONParser parser = new JSONParser();
      JSONObject jObject=(JSONObject)parser.parse(s);
      JSONArray messages = (JSONArray) jObject.get("routes");
      JSONArray ar = (JSONArray)messages.get("legs");

JSONArray.get不要将字符串作为参数。

我的JSON字符串:

    {
   "routes" : [
  {
     "bounds" : {
        "northeast" : {
           "lat" : 27.9786758,
           "lng" : 31.2199858
        },
        "southwest" : {
           "lat" : 27.0120443,
           "lng" : 30.9788969
        }
     },
     "copyrights" : "Map data ©2015 Google, ORION-ME",
     "legs" : [
        {
           "distance" : {
              "text" : "138 km",
              "value" : 138208
           },
           "duration" : {
              "text" : "1 hour 52 mins",
              "value" : 6744
           },

2 个答案:

答案 0 :(得分:0)

JSONArray表示一个数组。数组没有任何属性。它们具有从0到数组长度索引的元素。

如果要从数组中获取第一个元素(具有leg属性的JSONObject),请使用以下内容:

JSONObject firstElement = (JSONObject) messages.get(0);
JSONArray ar = (JSONArray) firstElement.get("legs");

确切的方法名称可能会有所不同:那里有数十个JSON库,而你没有告诉你使用的是哪一个。

答案 1 :(得分:0)

from socket import * from threading import Thread clients = [] def clientHandler(c, addr): global clients print(addr, "is Connected") try: while True: data = c.recv(1024) if not data: break for client in clients: if addr != client: c.sendto(data, client) except: print("Error. Data not sent to all clients.") HOST = '' #localhost PORT = 8000 s = socket(AF_INET, SOCK_STREAM) s.bind((HOST, PORT)) s.listen(5) print("Server is running on "+ str(PORT)) #Thread(target=clientHandler).start() #Thread(target=clientHandler).start() #Thread(target=clientHandler).start() trds = [] for i in range(5): c, addr = s.accept() clients.append(addr) t = Thread(target=clientHandler, args = (c, addr)) trds.append(t) t.start() for t in trds: t.join() s.close() 个对象具有函数JSONArray

您可以通过编写一个简单的for循环来获取所有getJSONObject(int index)

JSONObjects
相关问题