2016-06-15 3 views
1

Я пытаюсь преобразовать строку в json-массив и перебрать ее.преобразование строки в json массив с GSON

  String name = "lokesh"; 
      String response = "[{"name":"lokesh"}, {"name":"cherukuri"}]"; 

      JsonArray jsonArray = gson.fromJson(response, JsonArray.class); 
      for (int i = 0; i < jsonArray.size(); i++) { 
       JsonObject jsonObject = jsonArray.get(i).getAsJsonObject(); 
       System.out.println(jsonObject.get("name")); 
       if (jsonObject.get("name").toString().equals(name)) { 
        System.out.println("equal"); 
       } 
      } 

Проблема: Внутренний цикл If не соответствует истине из-за кавычек. потому что эта линия

System.out.println(jsonObject.get("name")); // printed "lokesh" 

    and System.out.println(name); //printed lokesh 

Я использую GSON неправильно?

ответ

0

Чтобы получить значение "имя" атрибут, вам необходимо:

jsonObject.getString("name") 

Таким образом, ваш код должен быть:

System.out.println(jsonObject.getString("name")); 
if (jsonObject.getString("name").equals(name)) { 
    System.out.println("equal"); 
} 
0

Это потому, что jsonObject.get ("имя") return a JsonElement объект. Если вы уверены, что это строка, вы можете получить ее до

jsonObject.get("name").getAsString() 
Смежные вопросы