2014-04-03 63 views
0

我需要解析此JSON:解析從webservice收到的json?

{ 
    "out":{ 
    "nroRegistros":1, 
    "asignaciones":[ 
     { 
     "lat":"456", 
     "lng":"456", 
     "direccion":"Nocedal 108 Estacion Central", 
     "depto":null, 
     "descripcion":"Casa amplia, cerca del metro las rejas", 
     "tipoVehiculo":null, 
     "referencia":null, 
     "rutDenunciante":null, 
     "nombreDenunciante":null, 
     "apePaternoDenunciante":null, 
     "apeMaternoDenunciante":null, 
     "fonoMovilDenunciante":null, 
     "ambito":null, 
     "prioridad":null, 
     "ley":null, 
     "articulo":null, 
     "marcaVehiculo":null, 
     "colorVehiculo":null, 
     "placaPatente":null, 
     "id":null 
     } 
    ] 
    }, 
    "status":{ 
    "code":1, 
    "message":"success" 
    } 
} 

從所有我看過,我不能找到一個例子或東西來指導我。我是json的新手,我無法真正找到使其工作的方法。我讀過很多教程,但都很簡單。我瞭解他們,但我不能讓這個工作。

回答

0

首先,使用一些json解析器來可視化數據,例如http://jsonviewer.stack.hu/。這將使您更容易理解數據的結構。

下一步是創建一個模型類來接受你正在接收的json。這你必須自己做,在Eclipse或任何其他IDE可能會使用它。

它會是這個樣子:

public class JsonModel{ 
    public Object out; 
    public Object status; 
} 

這裏我把Object作爲一般的類型,您可能要定義的變量到適當的類型,以反映JSON文件的結構。一旦你有了模型,你可以簡單地通過任何json庫獲取數據,我喜歡使用Gson第三方進行任何json工作。它會是這樣的:

string json = getJsonFromInternet(); 
JsonModel mymodel = new Gson().fromJson(json, JsonModel.class); 

您的數據將被存儲在mymodel中,作爲Java對象,您可以根據自己的需要使用它。

我希望這會有所幫助。

+0

請問爲什麼您從我的答案被接受? – NiVeR

+0

滯後,按下它兩次,對我幫助很大,並大量閱讀的另一個問題,我不得不經過是這樣的:如果(android.os.Build.VERSION.SDK_INT> 9) \t \t { \t \t StrictMode。 ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()。permitAll()。build(); \t \t StrictMode.setThreadPolicy(policy); \t \t} xP,添加它,並presto一切工作,感謝您的幫助和soffy刪除接受的xD – Shocklo

0
You can achieve this by using JsonLib. 

Try to put those values in HashMap , make sure you create the same structure of pojo classes as defined in the Json String (case sensitive) 

Your json will be mapped using the classMap.put method. From there on , we have a great controller over the java bean object. 

Try to explore few things, before you jump into it 

String json = "{'out':[{'test':'testname'},{'test2':'testname2'}]}"; 
Map classMap = new HashMap(); 
classMap.put("out", YourClass.class); 
MyBean bean = JSONObject.toBean(JSONObject.fromObject(json), MyBean.class, classMap); 


Reference 

<link>http://json-lib.sourceforge.net/snippets.html</link>