如何循环JSON并将其转换为Java对象

时间:2015-01-08 17:55:30

标签: java android json gson

我正在寻找循环JSON对象的好方法。寻找例子如何做到这一点。欢迎任何帮助。需要将其转换为Java对象。我已经读过,最好的方法是使用GSON,但可以获得正确的结果。

{  
   "countries":[  
      {  
         "MobileCountry":{  
            "id":2,
            "name":"England",
            "languages":[  
               {  
                  "MobileLanguage":{  
                     "code":"en",
                     "name":"English"
                  }
               },
               {  
                  "MobileLanguage":{  
                     "code":"ru",
                     "name":"Russian"
                  }
               }
            ],
            "mobile_code":"+60",
            "currency_code":"EUR",
            "regions":[  
               {  
                  "MobileRegion":{  
                     "region_id":2048,
                     "name":"trr"
                  }
               },
               {  
                  "MobileRegion":{  
                     "region_id":1024,
                     "name":"Wonderland"
                  }
               }
            ]
         }
      },
      {  
         "MobileCountry":{  
            "id":1,
            "name":"Spain",
            "languages":[  
               {  
                  "MobileLanguage":{  
                     "code":"esp",
                     "name":"Spanish"
                  }
               },
               {  
                  "MobileLanguage":{  
                     "code":"en",
                     "name":"English"
                  }
               }
            ],
            "mobile_code":"+456",
            "currency_code":"EUR",
            "regions":[  
               {  
                  "MobileRegion":{  
                     "region_id":1,
                     "name":"region_1"
                  }
               },
               {  
                  "MobileRegion":{  
                     "region_id":8,
                     "name":"region_2"
                  }
               },
               {  
                  "MobileRegion":{  
                     "region_id":32,
                     "name":"Region1"
                  }
               },
               {  
                  "MobileRegion":{  
                     "region_id":64,
                     "name":"GaBus"
                  }
               }
            ]
         }
      }
   ]
}

3 个答案:

答案 0 :(得分:1)

使用JSONObject

String rawJson = "...."; //escape your string if needed!
JSONObject json = new JSONObject(s); 

答案 1 :(得分:0)

可以进行更多研究并发布您的代码以获得更有用的反馈。

重复: How to parse JSON in Android

android有一个类: http://developer.android.com/reference/android/util/JsonReader.html

答案 2 :(得分:0)

这确实是一个广泛的问题,但我会尝试概述GSON的简单实现。

简而言之,GSON是:

  

Gson是一个Java库,可用于将Java对象转换为JSON表示。它还可用于将JSON字符串转换为等效的Java对象。 Gson可以处理任意Java对象,包括你没有源代码的预先存在的对象。

下载Gson并将其添加到您的构建路径中。然后,将其导入您的项目:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

创建Gson对象以使用:

Gson gson = new GsonBuilder().create();

然后你可以通过简单地将对象传递给Gson' s toJson() method来创建JSON:

gson.toJson(Object);

或者,你可以消费'使用fromJson() method从JSON创建对象的JSON对象。这适用于基元,或者您将要反序列化的JSON类指定为:

Person p = gson.fromJson(reader, Person.class);

<强>替代

您可能还想查看JSONObject。看起来它在Android文档中明确引用。那个图书馆也很受欢迎。