【问题标题】:Reading JSON String using JSON/Gson使用 JSON/Gson 读取 JSON 字符串
【发布时间】:2011-01-22 20:17:16
【问题描述】:

我有以下格式的 JSON 字符串,我在 Java 中作为 http 请求获得。我需要获取以下 JSON 字符串的名称和值,但我无法获得正确的解决方案。

谁能告诉我如何解析这个?另外,让我知道我们是否能够格式化此字符串,因为 3 元素中没有属性名称。

字符串格式为

{

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

}

edit#1 格式化了问题。

【问题讨论】:

  • 您缺少哪个元素的哪个属性名称?第三个元素是'UUID':'300V',看起来和其他元素一样,不是吗?

标签: java json gson


【解决方案1】:

在 JavaScript 中,您可以执行类似的操作

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

例如,此脚本将提醒 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 中,您可能想要利用 GS​​on。 See here.

您需要定义一个将 JSON 对象一对一映射的 Java 类。然后让 Gson 使用 JSON 字符串创建一个 Java 对象。这是一个例子。

映射 JSON 的 Java 类应如下所示

    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);

【讨论】:

  • 或 JSON.parse();如果存在:)
  • 从第三个元素开始,即 'UUID':'300V' 它就像一个列表......应该读取 UUID 和 300V ......这里 UUID 不是属性名称.. ..我们能读懂吗……这种格式有可能吗……??我们不能说 v.UUID..
  • @user576875 -- 嘿,谢谢。我从来没有用过那个。 @user585900 - 我没有得到你,你的 JSON 说它是财产。如果是数组。请更新您的问题。即使是数组。可以阅读。顺便说一句,以上是您要求的 javaScript 而不是 Java。我已经更新了问题。
  • 嘿,谢谢......想确认一下......顺便说一句,你知道我们如何在 java 中读取它......使用 JSON 对象或数组......
  • 您必须将其与某些属性相关联。它不能只是躺在那里。像“规格”:“'版本':'0.1.0'”。我的意思是它是一个对象的字符串表示......与Java对象相同。你不能只有 class MyClass{ "'Version':'0.1.0'"} 之类的东西——你必须有 class MyClass{ String specs = "'Version':'0.1.0'"} 之类的东西。 JSON 也是如此。
【解决方案2】:

你想用哪种语言来做?

这里是 PHP 的解决方案:

$data = json_decode('the json');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2011-11-11
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多