java - Java项目中的DSL-Json太慢

标签 java json jackson dsl

在 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那么你能帮我提供一下你的想法吗?

  1. 我们还有其他方式使用 dsljson

  2. 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 不是最快的,很可能您的设置有问题:)(这意味着您应该显示更多代码 - 您测试/基准库的准确程度如何)

关于java - Java项目中的DSL-Json太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45342522/

相关文章:

java - 图像未从 jar 加载

java - 在 ConsumerAwareRebalanceListener 上测试异常

java - 删除空格后的文本

c# - 如何在 JObject 中添加或更新 JProperty 值

java - 将方法的泛型传递为泛型类泛型

java - 如何有效地打开一个巨大的excel文件

java - 如何发布使用 GSON 解析大型 json 文件的进度

java - 我可以覆盖哈希集确定重复的方式吗?

java - 在java中使用jackson反序列化日期字段时抛出自定义异常

java - jackson 坚持绘制未知属性(property)的 map