2011-01-22 138 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