2011-01-22 157 views
0

我有以下格式的JSON字符串,我將其作爲Java中的http請求獲取。我需要獲取下面的JSON字符串的名稱和值,但我無法獲得正確的解決方案。使用JSON/Gson讀取JSON字符串

任何人都可以告訴我如何解析這個?另外,讓我知道是否可以格式化此字符串,因爲3元素中沒有屬性名稱。

字符串格式

{ 

'appname':'application', 
'Version':'0.1.0', 
'UUID':'300V', 
'WWXY':'310W', 
'ABCD':'270B', 
'YUDE':'280T' 

} 

編輯#1格式的問題。

+0

什麼屬性名稱,你從哪個元素丟失?第三個元素是「UUID」:「300V」,看起來和所有其他元素一樣,不是嗎? – maaartinus 2011-01-22 20:41:45

回答

0

你想用哪種語言做到這一點?

這裏是PHP的解決方案:

$data = json_decode('the json'); 
+0

我想在java – user587092 2011-01-22 20:26:29

3

在JavaScript中,你可以這樣做

var v = eval("("+data_from_server+")"); 
var aName = v.appname; 

例如這個腳本會提醒程序的名字。

<script> 
     var serverdata = "{'appname':'application', 'Version':'0.1.0', 'UUID':'300V', 'WWXY':'310W', 'ABCD':'270B', 'YUDE':'280T'}"; 
     var v = eval("("+serverdata+")"); 
     alert(v.appname); 
    </script> 

根據對this answer您的評論,這裏是Java

在Java解析的方式,你可能想利用GSON。 See here

您需要定義一個Java類,它將JSON對象一對一映射。然後讓GSon使用JSON字符串創建一個Java對象。這裏是例子。

Java類映射JSON應該是這樣的

public class MyData{ 
     public String appname; 
     public String Version; 
     public String UUID; 
     public String WWXY; 
     public String ABCD; 
     public String YUDE; 
     public MyData(){} 
    } 

你在Java中解析這個樣子。

String jsons = "{'appname':'application', 'Version':'0.1.0', 'UUID':'300V', 'WWXY':'310W', 'ABCD':'270B', 'YUDE':'280T'}"; 
    Gson gson = new Gson(); 
    MyData obj = gson.fromJson(jsons, MyData.class); 
    System.out.println("ada "+ obj.appname); 
+0

或JSON.parse()中做到這一點。如果它存在:) – arnaud576875 2011-01-22 20:37:06