【发布时间】:2014-06-24 02:32:43
【问题描述】:
我正在尝试使用 Google Places API,并且我基本上是在尝试解析 Json,而没有 json 中特定位置的密钥。
我能够解析所有数据并根据需要获取值。 虽然,我对该 json 中的某个部分有疑问。
这是 json 示例:
{
"html_attributions":[],
"results":[
{
"geometry":{
"location":{
"lat":somelat,
"lng":somelng
}
},
"icon":"someicon",
"id":"someid",
"name":"somename",
"reference":"some_image_reference",
"types":[
"gas_station",
"establishment"
],
"vicinity":"Some Address"
}
],
"status":"OK"
}
现在,这里是 code sn-p 来获取我遇到问题的值:
JSONObject mainJSONObject = new JSONObject(mAppUtils.loadJSON(gasURL));
JSONArray mainJSONArray = mainJSONObject.getJSONArray("results");
for(int i = 0 ; i<mainJSONArray.length();i++){
JSONObject obj = mainJSONArray.getJSONObject(i);
if(obj!=null){
String value = obj.getString("types");
Log.d("ARRAY VALUE : ", value);
}
}
在这里,代码运行良好,我能够获取数据。
主要问题是结果格式。这是一个示例:
06-23 22:03:51.762: D/ARRAY VALUE :(8074): ["car_repair","gas_station","establishment"]
06-23 22:03:51.782: D/ARRAY VALUE :(8074): ["convenience_store","food","store","car_repair","gas_station","establishment"]
06-23 22:03:51.782: D/ARRAY VALUE :(8074): ["gas_station","establishment"]
如您所见,我得到的结果格式如下:["car_repair","gas_station","establishment"]
有没有更好的方法来解析上面的 json 或者有什么方法可以替换其中的字符和大括号 ["car_repair","gas_station","机构"]
喜欢:
car_repair,gas_station,establishment 这样我就可以在任何其他视图的文本视图中使用它,而不会显示那些大括号和其他字符。
编辑:
JSONObject mainJSONObject = new JSONObject(mAppUtils.loadJSON(gasURL));
JSONArray mainJSONArray = mainJSONObject.getJSONArray("results");
for(int j=0;j<mainJSONArray.length();j++)
{
JSONObject jsonObject = mainJSONArray.getJSONObject(j);
JSONArray jsonArray = jsonObject.getJSONArray("types");
for(int ju=0;ju<jsonArray.length();ju++)
{
value = jsonArray.getString(ju);
Log.d("PLACE TYPES ARRAY VALUE : ", value);
}
在此之后,这是我得到的结果:
06-23 22:53:44.928: D/PLACE TYPES ARRAY VALUE :(16322): car_repair
06-23 22:53:44.928: D/PLACE TYPES ARRAY VALUE :(16322): gas_station
06-23 22:53:44.928: D/PLACE TYPES ARRAY VALUE :(16322): establishment
06-23 22:53:44.928: D/PLACE TYPES ARRAY VALUE :(16322): convenience_store
06-23 22:53:44.938: D/PLACE TYPES ARRAY VALUE :(16322): food
06-23 22:53:44.938: D/PLACE TYPES ARRAY VALUE :(16322): store
06-23 22:53:44.938: D/PLACE TYPES ARRAY VALUE :(16322): car_repair
06-23 22:53:44.938: D/PLACE TYPES ARRAY VALUE :(16322): gas_station
06-23 22:53:44.938: D/PLACE TYPES ARRAY VALUE :(16322): establishment
06-23 22:53:44.938: D/PLACE TYPES ARRAY VALUE :(16322): gas_station
06-23 22:53:44.938: D/PLACE TYPES ARRAY VALUE :(16322): establishment
但问题是,我如何将这些值与他们尊重的 json 数组分开。
任何帮助将不胜感激.. 谢谢.. :)
【问题讨论】:
-
"types":[是一个 JSONArray -
我明白这一点,但我也尝试使用 JSONArray 并且确实得到了结果,但由于某种原因,然后我执行 JSONArray typesJsonArray = obj.getJSONArray("types");字符串值 = typesJsonArray.getString(i);它给了我错误。
-
你有一个数组类型,你必须遍历那个数组
标签: android json google-places-api arrays