在Java项目中实现dsljson时,我看到这是不正确的。这是非常缓慢且难以实施的。

我创建从JsonObject实现的新对象

public static class abc implements JsonObject {

    public final int x;
    public final String s;

    public abc(int x, String s) {
        this.x = x;
        this.s = s;
    }

    public void serialize(JsonWriter writer, boolean minimal) {
        //parse the instance of object (abc) to json-string
    }

    public static final JsonReader.ReadJsonObject<abc> JSON_READER =
                                     new JsonReader.ReadJsonObject<abc>() {
        public abc deserialize(JsonReader reader) throws IOException {
            // Use jsonreader and common json converter (numberconverter,
            // stringconverter) to parse json-string to an
            // instance of object (abc)
        }
    };
}


我创建了新的DslJson<Object> dslJson = new DslJson<Object>();,以便在使用它时调用“反序列化” /“序列化”。

我认为我的实施方式不正确,因此速度太慢。
因此,如果您对此lib有任何经验或示例,那么可以帮助我提供有关此想法的想法吗?


我们还有使用dsljson的另一种方法吗?
DslJson不能像JackSon那样使用?

ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{\"age\":33,\"messages\":[\"msg 1\",\"msg 2\"],
                        \"name\":\"mkyong\"}";
User user1 = mapper.readValue(jsonInString, User.class);

最佳答案

库存储库中没有几个示例,例如:https://github.com/ngs-doo/dsl-json/blob/master/examples/Maven/src/main/java/com/dslplatform/maven/Example.java#L82

一些尝试:


重用dslJson实例-在测试期间多次重新创建它会很昂贵
避免使用字符串-byte []或Streams是GC更友好的数据类型


如果DslJson不是最快的,则很可能是您的设置有问题:)(这意味着您应该显示更多代码-测试/测试库的精确程度)

10-02 03:21