Java 从服务器解析Json
我如何像这样解析json:Java 从服务器解析Json,java,android,json,Java,Android,Json,我如何像这样解析json: {"SizeOptions": [ { "Name": "دور باسن", "GroupSizeId": 2, "Id": 5, "LangId": 0 }, { "Name": "دور کمر", "GroupSizeId": 2, "Id": 6, "LangId": 0 } ],"SizeValues": [ { "Value": "a", "SizeId": 11, "SizeOptionId": 5, "
{"SizeOptions": [
{
"Name": "دور باسن",
"GroupSizeId": 2,
"Id": 5,
"LangId": 0
},
{
"Name": "دور کمر",
"GroupSizeId": 2,
"Id": 6,
"LangId": 0
} ],"SizeValues": [
{
"Value": "a",
"SizeId": 11,
"SizeOptionId": 5,
"ProductId": 1069,
"Id": 145627,
"LangId": 0
},
{
"Value": "a",
"SizeId": 11,
"SizeOptionId": 8,
"ProductId": 1069,
"Id": 145630,
"LangId": 0
} ],"Sizes": [
{
"Name": "XXL",
"GroupSizeId": 2,
"Id": 11,
"LangId": 0
},
{
"Name": "L",
"GroupSizeId": 2,
"Id": 12,
"LangId": 0
}]}
我想把SizeOptions中的所有名称放在不同的字符串中字符串name1、name2、name3
我尝试了这个开始:
JSONObject jObject = new JSONObject(response);
JSONObject p = jObject.getJSONObject("SizeOptions");
String name = p.getString("Name");
但它只是给了我一个空值!
有什么问题?我怎样才能修好它?请帮助您正在尝试获取JSONArray作为JSONObject。请尝试以下操作:
JSONObject jObject = new JSONObject(response);
JSONSONArray p = jObject.getJSONArray("SizeOptions");
for(int i=0;i<p.length();i++)
{
JSONObject jObjectValue=p.getJSONObject(i);
String name = jObjectValue.getString("Name");
}
JSONObject jObject = new JSONObject(response);
List<String> names = new ArrayList<>();
JSONArray p = jObject.getJSONArray("SizeOptions");
for (int i = 0; i < p.length(); i++) {
JSONObject jo = p.getJSONObject(i);
String name = jo.getString("Name");
names.add(name);
}
System.out.println(names);
SizeOptions是一个数组。我必须查找它,android sdk API中的JSONArray确实是不可移植的。这样一个糟糕的API。@AluanHaddad的替代方案是您可以将GSON lib与自定义对象和pojo一起使用