2016-08-26 58 views
-1

在我的项目中,我从PHP服务器获取数据,这些数据使用JSON语法。 然后我的应用程序通过简单的http请求从服务器获取这些数据并将其保存到一个字符串中。现在问题在于将此字符串转换为JSON对象和JSONArray。Android JSON字符串到JSONArray

服务器返回的数据 -

{ “LAT”: “35.241”, “LNG”: “76.845”, “名”: “AAA”} { “LAT”: “38.247” LNG“: “76.852”, “名”: “GGG”}

从服务器获取串并转换为JSON -

JSONObject jsonObject = null; 
    String url = "http://placePPP.com/hr.php?request=1"; 
    String response = MyHttpRequest(url); 
    try { 
     jsonObject = new JSONObject(response); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

响应数据等于服务器返回数据(有没问题),但是在t之后他转换到JSON我只得到字符串的第一部分,我尝试转换 -

{ “LAT”: “35.241”, “LNG”: “76.845”, “名”: “AAA”}

如果有人能帮助我理解为什么我只得到第一部分,我该如何将此字符串转换为JSON对象并以最佳方式感谢JSONArray。

+0

JSON是不正确的,它应该有封闭JSON数组像这样[{ \t“lat”:“35.241”, \t“lng”:“76。845" , \t “名称”: “AAA” },{ \t “LAT”: “38.247”, \t “LNG”: “76.852”, \t “名称”: “GGG” }] – shalini

回答

0

这是一个格式不正确的JSON,这就是为什么你只有第一部分。

查看this comment了解更多详情。

0

这不是有效的JSON,你有两个相邻的json对象。

与开发商
+0

它 – Aspicas

0

谈话对象中的数据发送或则你的数据

jsonMainobject { 
{"lat":"35.241","lng":"76.845","name":"AAA"}{"lat":"38.247"lng":"76.852","name":"GGG"} 
} 

,或者你可以做的

jsonarray[ 
{"lat":"35.241","lng":"76.845","name":"AAA"}{"lat":"38.247"lng":"76.852","name":"GGG"} 
] 
0

您的服务器没有产生有效的JSON响应。请在这里https://jsonformatter.curiousconcept.com/

有效的响应应该是这样的:

[ 
{"lat":"35.241", "lng":"76.845", "name":"AAA"}, 
{"lat":"38.247", "lng":"76.852", "name":"GGG"} 
] 

还与JsonArray解析它进去两个JsonObject秒的阵列。

+0

Grate,我添加缺少的括号,现在当我尝试使用JSONArray解析它时,我得到下一个错误 - “org.json.JSONException:未终止的数组” 这是编码部分 - JSONArray json_Array = null; 尝试json_Array = new JSONArray(response); } catch(JSONException e){ e.printStackTrace (); } – proli2

+0

请检查链接的网站,该json是一个有效的 – mhenryk

0

变化串从

{"lat":"35.241","lng":"76.845","name":"AAA"}{"lat":"38.247"lng":"76.852","name":"GGG"} 

[{ 
    "lat": "35.241", 
    "lng": "76.845", 
    "name": "AAA" 
}, 
{ 
    "lat": "38.247", 
    "lng": "76.852", 
    "name": "GGG" 
}] 

对于核对无误json可以使用这个链接:http://www.jsoneditoronline.org/