java - 从字符串中获取带有json对象的数组
问题描述
我有一个 java spring boot 项目,它进行 REST API 调用,返回的 json 的一个元素如下:
"args": "[[\"element_1\"],[\"element_2\"],[\"{\\\"payload\\\":\\\"{\\\"Header\\\": \\\"Header_title\\\", \\\"Content\\\": \\\"Content of the payload\\\"}\\\"}\"]]"
我的目标是获得 JsonObject “有效载荷”。我可以使用
JsonObject argString = (JsonObject) jsonParser.parse(originalJsonObject.get("args").toString());
(使用包 com.google.gson.JsonObject)获取字符串,但我无法从字符串中获取二维数组。
解决方案
您包含的数据部分实际上是args
带有字符串值的键[[\"element_1\"],[\"element_2\"],[\"{\\\"payload\\\":\\\"{\\\"Header\\\": \\\"Header_title\\\", \\\"Content\\\": \\\"Content of the payload\\\"}\\\"}\"]]
。因此,您无法通过现有 Json 上的方法解码这些内容是正确的,但是您可以将字符串解析为 json 数组,如下所示:
JsonElement jsonElem = new JsonParser().parse(argString);
JsonArray jsonArray = jsonElem.getAsJsonArray();
for(int i = 0; i < jsonArray.size(); i++) {
System.out.println(jsonArray.get(i));
}
推荐阅读
- python - 检查 getattr 是否存在于 Python3 中的字典理解中
- javascript - 自动为所有 API 传递 api 密钥
- discord - 如何让它滚动多次
- git - 无法使用 shell 运行 gitlab runner
- ansible - 从 kolla-ansible 中删除以前部署的服务的正确方法是什么
- javascript - 如何编写来自 Google 表单上传的照片并将其大小设置为 1 英寸以在模板中显示?
- apache-spark - Spark 会话未初始化 | sparkR.session() 给出错误“if (len > 0) { 中的错误:参数长度为零”
- javascript - 如果存在特定元素,有没有办法为同一个变量分配不同的值?
- probability - 如何确定有问题的概率百分比
- javascript - 在异步函数上调用之后如何获取异步函数的返回值