【发布时间】:2017-07-27 06:04:06
【问题描述】:
在 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);
【问题讨论】:
-
“dsljson 是最好的解析库”,谁说的? (也许除了作者之外)你是如何衡量它太慢的?看看这个:stackoverflow.com/questions/16230726/… 和/或谷歌的“快速 json 解析器”。
-
这是对 Java JSON 库的序列化和反序列化的性能测试 (github.com/fabienrenaud/java-json-benchmark)。而在我的项目中,我使用了大约 30000 条记录来检查性能。
-
我建议您自己尝试一些库,而不是选择别人认为最快的库。他们可能犯了一个错误,你可能做错了什么,当使用另一个库时也会出现。您可能正在错误地测量解析,其他人无法判断。
-
我仍然希望有人可以帮助我。至少我会对 dsl-json 有新的体验 :)。但是感谢您的想法:)
-
@BartKiers 好吧,即使是杰克逊的作者也这么说:twitter.com/cowtowncoder/status/753068282442227712