Java 从服务器解析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, "

我如何像这样解析json:

{"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一起使用