【问题标题】:parse JSON with gson and GsonBuilder()使用 gson 和 GsonBuilder() 解析 JSON
【发布时间】:2012-11-09 11:24:33
【问题描述】:
String jsons = "{'appname':'application', 'Version':'0.1.0', 'UUID':'300V', 'WWXY':'310W', 'ABCD':'270B', 'YUDE':'280T'}";

这是我的 json 字符串。我如何将它解析为 GsonBuilder() 以便我将对象取回?我尝试了一些想法,但没有一个有效。

我也看了https://sites.google.com/site/gson/gson-user-guide

【问题讨论】:

    标签: json gson


    【解决方案1】:
    public class YourObject {
       private String appname;
       private String Version;
       private String UUID;
       private String WWXY;
       private String ABCD;
       private String YUDE;
       //getters/setters
    
    }  
    

    解析为对象

    YourObject parsed = new Gson().fromJson(jsons, YourObject.class);  
    

    YourObject parsed = new GsonBuilder().create().fromJson(jsons, YourObject.class);  
    

    小测试

    String jsons = "{'appname':'application', 'Version':'0.1.0', 'UUID':'300V', 'WWXY':'310W', 'ABCD':'270B', 'YUDE':'280T'}";
    YourObject parsed = new Gson().fromJson(jsons, YourObject.class);  
    

    效果很好

    编辑
    在这种情况下使用JsonParser

    JsonObject object = new JsonParser().parse(jsons).getAsJsonObject();
    object.get("appname"); // application 
    object.get("Version"); // 0.1.0
    

    【讨论】:

    • 没有新课怎么办?我不需要新课程
    • @Ilya 是否可以将输出作为 ArrayList 而不是 YourObject.. 请看stackoverflow.com/questions/30163699/… .... 我需要 ArrayList 作为改造的输出..
    • 节省了我重新编码的时间
    【解决方案2】:

    JSON 对字符串使用双引号 ("),而不是单引号,因此您拥有的 JSON 无效。这可能是您在将其转换为对象时遇到任何问题的原因。

    【讨论】:

    • 所以我需要检查 json 字符串是否有效。 try catch 够了吗?
    • @senzacionale 这取决于如果您传递无效的JSON,它是否会引发异常;我认为它会,所以使用 try-catch 块就足够了。
    猜你喜欢
    • 2011-02-12
    • 2012-01-02
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多