我需要从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
},
答案 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