【问题标题】:convert ByteString to Json using java使用java将ByteString转换为Json
【发布时间】:2016-09-02 08:44:45
【问题描述】:

我收到来自 Rest 的回复:

{"id":81236,"root":0,"child":3,"branch":0,"results":[{"message":"valid"},{"message":"valid"}}

我想使用 java 8 将其转换为 JsonObject。

我正在尝试 JsonObject 但我坚持使用 POJO ,因为 Json 响应有时可能有一些额外的字段。

所以我想成为通用的,以便任何以 ByteString 形式的有效 json 都可以轻松转换为 JSonObject。

【问题讨论】:

  • 你试过的邮编。
  • 您的 json 中有错误。它是无效的 json
  • 响应Json无效。 ']' 丢失
  • by ByteString 你是什么意思?一串字节或google protobuf的ByteString??
  • {"id":81236,"root":0,"child":3,"branch":0,"results":[{"message":"valid"},{" message":"valid"}]} ...现在是有效的json

标签: java json java-8 akka-http


【解决方案1】:

假设您使用的是org.json.JSONObject,以下工作正常...

public static void main(String[] args) {
        String test = "{\"id\":81236,\"root\":0,\"child\":3,\"branch\":0,\"results\":[{\"message\":\"valid\"},{\"message\":\"valid\"}]}";
        JSONObject objJsonObject = new JSONObject(test);
        System.out.println(objJsonObject);
}
  • 正如@Andreas 所指出的,不可能为动态 json 对象设计 POJO 类。

【讨论】:

  • 如果 OP 卡在 POJO 上,则不太可能,因为您的代码不使用 POJO。
  • @Andreas 因为 OP 提到他的输入 json 不固定,所以使用 POJO 没有意义。我认为这种方法是最简单的。
  • 所以你应该解释 POJO 不适合动态 JSON。
  • @Andreas 感谢您改进我的回答。我会相应地修改我的答案。 :)
猜你喜欢
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
  • 2019-05-11
  • 2015-04-11
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多