我有一个这样的String类型变量:
String response_str="[{"Code":"AC_70","Id":1,"Lat":23.847153,"Lon":88.254636,"Name":"Rejinagar"},{"Code":"AC_51","Id":2,"Lat":25.024795,"Lon":88.118248,"Name":"Englishbazar"}]
";
现在,我已经创建了一个方法,如下所示:
public void parse_json_str(String json_str)
{
Log.i("String: ",json_str);
}
我浏览了教程here并找到了一种方法。
private void JsonParsing() {
JSONObject jObject;
String jString = "{\"menu\": {\"id\": \"file\", \"value\": \"File\", \"popup\": { \"menuitem\": [ {\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"}, {\"value\": \"Open\", \"onclick\": \"OpenDoc()\"}, {\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}";
try {
jObject = new JSONObject(jString);
JSONObject menuObject = jObject.getJSONObject("menu");
String attributeId = menuObject.getString("id");
System.out.println(attributeId);
String attributeValue = menuObject.getString("value");
System.out.println(attributeValue);
JSONObject popupObject = menuObject.getJSONObject("popup");
JSONArray menuitemArray = popupObject.getJSONArray("menuitem");
for (int i = 0; i < 3; i++) {
Log.i("Value",menuitemArray.getJSONObject(i)
.getString("value").toString());
Log.i("Onclick:", menuitemArray.getJSONObject(i).getString(
"onclick").toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
问题在于,JSON具有不同的结构,我想以同样的方式解析我的json。我的json不包含任何母节点。关于如何解析json的任何建议都会有很大的帮助。
答案 0 :(得分:2)
你应该仔细看看结构。此JSON是一个包含2个对象的数组。因此,在创建JSONArray之后,您应该遍历其中所有可能的JSON对象。
[
{
"Code":"AC_70",
"Id":1,
"Lat":23.847153,
"Lon":88.254636,
"Name":"Rejinagar"
},
{
"Code":"AC_51",
"Id":2,
"Lat":25.024795,
"Lon":88.118248,
"Name":"Englishbazar"
}
]
代码:
private void JsonParsing()
{
JSONArray lJSONArray;
String jString = "your JSON here";
try
{
lJSONArray = new JSONArray( jString );
JSONObject lJSONObject;
for ( int i = 0; i < lJSONArray.length(); i++ )
{
lJSONObject = lJSONArray.getJSONObject( i );
// PARSE FIELD HERE
String lCode = lJSONObject.getString( "Code" );
// ETC
}
}
catch( Exception e )
{
e.printStackTrace();
}
}
试试这个:)