问题标签 [jsonnode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在 Java 中使用 Jackson 解开嵌套 JSON 值的最简洁方法是什么?
我有一个看起来像这样的 JSON(例如,字段数量大大减少):
请记住,我无法控制它,我无法更改它,这就是我从 API 中得到的。
我为此创建了一个 POJO 类,如下所示:
然后我用杰克逊解析JSON(我必须使用它,请不要建议GSON或其他):
这不起作用,因为 id、param1 和 param2 中包含 JSON,而不是直接值。该代码适用于 JSON,如下所示:
但不幸的是,我需要的值存储在“内容”字段下。
解决这个问题的最干净的方法是什么?
我知道我可以对此进行硬编码并将所有值一个一个地提取到构造函数或其他东西中的变量中,但是它们有很多,而不仅仅是像这个例子中的 3 个,显然这不是正确的方法。
java - 更新 ArrayNode 中的完整列表对象
我想更新我的 ArrayNode 中的列表项。
前:
我已经有下面的列表,需要data
一次性替换为元素。
预期的:
我在下面尝试过,都将完成的初始 arrayNode 替换为我错过原始数据的新列表:
只是好奇是否有任何方法可以一次更新arrayNode中的整个列表对象。
如果原始代码是ObjectNode ,则下面的代码将起作用:
java - 基于键修剪 ObjectNode
我有一小段代码有问题,需要正确编写。代码如下,
根据规则进行清洁工作,
- 如果这是一个
ObjectNode
,从那里删除键。 - 如果是 Array 节点,从那里获取对象并相应地清理它们 #1
我认为错误在于它不假设一个数组节点也可以包含另一个数组节点,我们需要编写另一个最终返回 ObjectNode 的递归方法。
那是对的吗?
java - 如何创建一个函数来将 JSON 响应映射到对象列表
我从 API 得到响应
我想映射每周时间序列的 JSON 响应。这样我就有了一个对象列表,其中日期是 ID,打开、关闭等是对象数据变量。
这是在spring boot中完成的
请帮忙
我到处搜索如何做到这一点。我最接近的是使用 JsonNode
weekService 为:
然而,这只给出了每周调整时间序列的响应,而不是将 JSON 映射到对象
在其他示例中,我发现数据是使用标签从 JSON 中提取的。但是,这里的标签是可能不固定的日期。
java - 如何使用jackson java向数组节点中的每个对象添加附加字段?
我有一个主列表,它们有两个字段,分别是名称和评级,在序列化到数组节点之后,我需要为每个对象再添加一个字段,例如我有 json
我有 json 格式的 servisec 列表,看起来像这样
我需要它看起来像那样
使用杰克逊如何做到这一点?
java - 如何在没有字段 id 的情况下使用 Java @JsonProperty 和 jackson.databind.ObjectMapper?
我有一个看起来像这样的 json:
我真正关心的是“数据”中的内容。我正在尝试将jackson.databind.ObjectMapper
其映射到我的自定义类,其中“abc”是名称,“1”的值是property1,“2”的值是property2。
我想以与设置其他属性相同的方式设置名称,使用 JsonProperty 注释,但名称始终不同,并且没有与其他属性相同的字段 id。我怎样才能做到这一点?这是我到目前为止所拥有的:
产生:
>>MyClass[name=, prop1=foo, prop2=bar] // 重写 toString()
如果您可以解释如何获取密钥(名称)而不将它们硬编码到findPath(String)
.
java - feign.codec.DecodeException:无法在没有参数的情况下调用受保护的 com.fasterxml.jackson.databind.JsonNode()
我试图将 JSON 字符串转换为 JsonNode。我的代码是这样的,
但是在运行我的测试用例之后,我收到了这样的错误,
如何解决这个问题?
java - 如何将 Unirest 中的 JsonNode 转换为地图?
我提出了一个 Unirest 请求,并以 JsonNode 的形式获得了响应,并试图将其转换为 Map<String, Boolean>,但到目前为止没有任何效果。到目前为止,这是我尝试过的几件事:
- 使用对象映射器
但是,当我稍后迭代它时,这给了我以下错误:java.lang.IllegalArgumentException: No serializer found for class org.json.JSONObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.mashape.unirest.http.JsonNode["array"])
- 使用 Gson
但是,这给了我解析错误:java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
但是,即使我将其更改为字符串而不是布尔值,它也会告诉我我无法将布尔值转换为字符串????诡异的。
- 将 JsonNode 转换为 String 然后是 Map:
字符串 myJson = pocoResponseJson.toString(); ObjectMapper 映射器 = 新 ObjectMapper(); 地图<字符串,字符串> responseMap = null; responseMap = mapper.readValue(myJson, Map.class);
然而,这仍然给了我这个错误java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
,因为来自 HTTP 响应的映射值是一个布尔值。
我对任何一种方法都很好,我会做任何有效的事情提前谢谢你!
spring - 使用 JsonNode 修剪有效负载并获取 IntNode 无法转换为类 com.fasterxml.jackson.databind.node.ObjectNode 异常
我有一个简单的问题,我知道你可以帮我解决。我正在使用一个巨大的字符串有效负载,我想为我的卡夫卡消费者修剪。我编写了一个类来处理数据并删除某些数据属性。其中一些是 IntNode、TextNode 和 ArrayNode 类型。我目前正在尝试将所有内容都转换为 ObjectNode 并使用 remove(fieldName) 方法,但是我在堆栈跟踪中遇到异常“java.lang.ClassCastException: class com.fasterxml.jackson.databind.node.IntNode cannot be cast to com.fasterxml.jackson.databind.node.ObjectNode 类(com.fasterxml.jackson.databind.node.IntNode 和 com.fasterxml.jackson.databind.node.ObjectNode 位于加载程序‘app’的未命名模块中)”
找到附加的我的代码和示例有效负载。感谢您的时间(我正在尝试删除属性:IntNode 类型的 location_group_id、关系、里程碑、geographic_specifications、联系信息)
java - 使用 JsonNode 中的更新将新项目添加到 ArrayNode
我试图通过以下代码中的更新向 JsonNode 添加新的数组项。
预期结果:
但我低于