2011-08-30 113 views
0

我有一个简单的JSON源,它返回一个图像路径和一组协调。 “坐标”可以有无限的协调。在我下面的例子中,它只有3组。使用GSON解析json数据源

{"image":"Some data", "coords": {"0":[0,0], "1":[55,22], "2":[46,65]}} 

我将如何使用GSON来解析此问题?我如何为此创建课程?

感谢

+1

问题是? – Houcine

+0

没问题,只是几个问题。 – dotty

+0

您的编辑仍然无效JSON。请参阅下面的答案。如果你编辑为有效的JSON ...你有什么问题?如果你不知道如何使用GSON,他们的文档相当不错。 –

回答

2

你将有一个坚硬的 因为它不是有效的JSON。

http://jsonlint.com/

如果它是有效的JSON,如...

{"image":"Some data", "coords": {"0":[0,0], "1":[55,22], "2":[46,65]}}

我相信GSON可以解析coords<String, ArrayList<Integer>>一个map但我需要尝试,以确保。

1

添加gson-1.7.1.jar文件,并写入这个类来获得所需要的JSONObjectJSONArray从URL。

public class GetJson { 

    public JSONArray readJsonArray(String url) { 

     String read = null; 
     JSONArray mJsonArray = null; 
     try { 
      HttpClient http = new DefaultHttpClient(); 
      HttpPost post = new HttpPost(url); 
      HttpResponse response = http.execute(post); 
      HttpEntity entity = response.getEntity(); 
      InputStream is = entity.getContent(); 

      BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
      StringBuilder builder = new StringBuilder(); 
      String str = null; 
      while ((str = br.readLine()) != null) { 
       builder.append(str); 
      } 
      is.close(); 
      read = builder.toString(); 
      mJsonArray = new JSONArray(read); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return mJsonArray; 
    } 

    public JSONObject readJsonObject(String url) { 
     String read = null; 
     JSONObject mJsonObject = null; 
     try { 
      HttpClient http = new DefaultHttpClient(); 
      HttpPost post = new HttpPost(url); 
      HttpResponse response = http.execute(post); 
      HttpEntity entity = response.getEntity(); 
      InputStream is = entity.getContent(); 

      BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
      StringBuilder builder = new StringBuilder(); 
      String str = null; 
      while ((str = br.readLine()) != null) { 
       builder.append(str); 
      } 
      is.close(); 
      read = builder.toString(); 
      mJsonObject = new JSONObject(read); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return mJsonObject; 
    } 
} 

享受...

然后解析JSON看到这些教程,

Tutorial 1

Tutorial 2

Tutorial 3