gpt4 book ai didi

java - JsonParseException,JSON 中不存在错误字符

转载 作者:行者123 更新时间:2023-12-01 18:28:07 25 4
gpt4 key购买 nike

我正在尝试用 Java 处理以下格式的 JSON。

    String flowJSON = "{\"FlowDTO\":[{\"policyName\":\"Firewall\",\"action\":\"DROP\",\"sourceIp\":\"ANY\",\"destinationIp\":\"ANY\",\"datapathId\":\"8506829779379520\",\"sourcePort\":\"ANY\",\"destinationPort\":\"78\",\"protocol\":\"TCP\",\"priority\":\"0\",\"rateLimiter\":\10000\"}]}";

JsonNode root = mapper.readTree(flowJSON);

对于上面的代码,我收到以下错误。但是,我不明白为什么错误的字符是“@”,因为我的 JSON 中没有该字符。我没有正确读取此错误吗?

[2014-08-15 14:44:37.095] ERROR POLLtimer                    System.err                                                        com.fasterxml.jackson.core.JsonParseException: Unexpected character ('@' (code 64)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') 
[2014-08-15 14:44:37.095] ERROR POLLtimer System.err at [Source: java.io.StringReader@4e511927; line: 1, column: 214]
[2014-08-15 14:44:37.096] ERROR POLLtimer System.err at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1378)
[2014-08-15 14:44:37.096] ERROR POLLtimer System.err at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:599)
[2014-08-15 14:44:37.096] ERROR POLLtimer System.err at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:520)
[2014-08-15 14:44:37.097] ERROR POLLtimer System.err at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleUnexpectedValue(ReaderBasedJsonParser.java:1387)
[2014-08-15 14:44:37.097] ERROR POLLtimer System.err at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:678)
[2014-08-15 14:44:37.097] ERROR POLLtimer System.err at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:194)
[2014-08-15 14:44:37.098] ERROR POLLtimer System.err at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeArray(JsonNodeDeserializer.java:230)
[2014-08-15 14:44:37.098] ERROR POLLtimer System.err at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:202)
[2014-08-15 14:44:37.099] ERROR POLLtimer System.err at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:58)
[2014-08-15 14:44:37.099] ERROR POLLtimer System.err at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:15)
[2014-08-15 14:44:37.099] ERROR POLLtimer System.err at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2793)
[2014-08-15 14:44:37.100] ERROR POLLtimer System.err at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:1659)
[2014-08-15 14:44:37.100] ERROR POLLtimer System.err at com.hp.sf.impl.fucms.PollFlowTimerTask.run(PollFlowTimerTask.java:95)
[2014-08-15 14:44:37.101] ERROR POLLtimer System.err at java.util.TimerThread.mainLoop(Timer.java:555)
[2014-08-15 14:44:37.102] ERROR POLLtimer System.err at java.util.TimerThread.run(Timer.java:505)

最佳答案

这里缺少双引号:\"rateLimiter\":\10000\"

\100 被视为以八进制表示的单个字符。如果您查看 ascii 表,您会发现字符 64(八进制中的 100)是一个 @ 符号。所以你的字符串包含 "rateLimiter":@00" 而不是 "rateLimiter":"10000"

关于java - JsonParseException,JSON 中不存在错误字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com