【问题标题】:Write Json string manually using LibGDX library使用 LibGDX 库手动编写 Json 字符串
【发布时间】:2016-09-18 13:28:54
【问题描述】:

LibGDX 实现 JSON 读取器和写入器。 这允许您为 GWT 进行编译(org.json.JSONobject 没有 GWT 实现)。 序列化对象和从 Json 字符串实例化对象非常棒。 就我而言,我想在不从对象/类开始的情况下生成 JSON。

通读文档 (https://github.com/libgdx/libgdx/wiki/Reading-&-writing-JSON) 后,我找不到一个好的示例,我费了些力气才让它工作。所以我在这里公布我最终是如何完成它的(也许有更好、更清洁的方法来实现相同的结果)。

【问题讨论】:

    标签: json gwt libgdx


    【解决方案1】:

    所以要使用 LibGDX Json 库手动生成如下所示的 JSON 字符串:

    {
      "name":"BOB",
      "surname":"DAVID",
      "phones":[
        { 
          "mobile":,"xxx-x-x"
        },
        {
         "landline":,"xxx-x-x"
        }
      ]
    }
    

    您可以使用我为说明目的而简化的那种代码:

    public String harcodedLIBGDXJSON(){
            Json jsonObject = new Json();
            StringWriter jsonText = new StringWriter();
            JsonWriter writer = new JsonWriter(jsonText);
            jsonObject.setOutputType(JsonWriter.OutputType.json);
            jsonObject.setWriter(writer);
            jsonObject.writeObjectStart();
            jsonObject.writeValue("name", "BOB");
            jsonObject.writeValue("surname","DAVID");
            jsonObject.writeArrayStart("phones");
                {
                    Json aPhoneNumber = new Json();
                    aPhoneNumber.setOutputType(JsonWriter.OutputType.json);
                    aPhoneNumber.setWriter(writer);
                    aPhoneNumber.writeObjectStart();
                    aPhoneNumber.writeValue("mobile", 'xxx-x-x');
                    aPhoneNumber.writeObjectEnd();
    
                    Json aPhoneNumber = new Json();
                    aPhoneNumber.setOutputType(JsonWriter.OutputType.json);
                    aPhoneNumber.setWriter(writer);
                    aPhoneNumber.writeObjectStart();
                    aPhoneNumber.writeValue("landline", 'xxx-x-x');
                    aPhoneNumber.writeObjectEnd();
               }
    
            }
    
            jsonObject.writeArrayEnd();
            jsonObject.writeObjectEnd();
            return jsonObject.getWriter().getWriter().toString();
        }
    

    注意:如果你不使用 'object.setOutputType(JsonWriter.OutputType.json);'默认情况下它将使用最小注释(例如,它不会在您的字符串周围使用双引号,这会导致我在代码的其他部分出现一些问题)。

    【讨论】:

      猜你喜欢
      • 2014-04-28
      • 2016-12-15
      • 2018-03-27
      • 2017-11-30
      • 1970-01-01
      • 2014-05-13
      • 2015-04-16
      • 2018-01-13
      • 2016-03-10
      相关资源
      最近更新 更多