$.items[0].data.\0\
\0\ is data Object
0是data对象的键 data是个对象 不是数组
pbossiut1#
从fastjson1 升级到fastjson2 发现好多jsonpath 不兼容问题 !数字key在tostring的时候也会报错类型转换错误,貌似底层fastjson2 认为json的key只能是字符串
jfgube3f2#
还有要支持宽松的 解析模式 很多json都是手写的 不想严格按照json格式来
vkc1a9a23#
String str = "{\"items\": [{\"data\":{\"0\":\"abc\"}}]}"; Object result = JSONPath.eval(str, "$.items[0].data.0"); assertEquals("abc", result);
这个是不是你想要的?
4smxwvx54#
String jsonPath = "$.items[0].data.0"; Map data = new LinkedHashMap<>(); JSONPath.set(data, jsonPath, "设置成功");
设置不进去 我的是fastjson-2.0.15
2izufjch5#
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.16-SNAPSHOT/问题已经修复,请用2.0.16-SNAPSHOT帮忙验证,2.0.16版本预计在10月30日前发布
cyej8jka6#
https://github.com/alibaba/fastjson2/releases/tag/2.0.16问题已修复,请用2.0.16版本
gab6jxml7#
Map data = new LinkedHashMap<>(); JSONPath.set(data, "$.obj.5", "设置成功"); System.out.println(JSONObject.toJSONString(data));
会打印:{"obj":[]}
我希望是打印 {"obj":{5:"设置成功"}} obj是对象 不是数组
我用的最新的2.0.16
7条答案
按热度按时间pbossiut1#
从fastjson1 升级到fastjson2 发现好多jsonpath 不兼容问题 !数字key在tostring的时候也会报错类型转换错误,貌似底层fastjson2 认为json的key只能是字符串
jfgube3f2#
还有要支持宽松的 解析模式 很多json都是手写的 不想严格按照json格式来
vkc1a9a23#
这个是不是你想要的?
4smxwvx54#
设置不进去 我的是fastjson-2.0.15
2izufjch5#
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.16-SNAPSHOT/
问题已经修复,请用2.0.16-SNAPSHOT帮忙验证,2.0.16版本预计在10月30日前发布
cyej8jka6#
https://github.com/alibaba/fastjson2/releases/tag/2.0.16
问题已修复,请用2.0.16版本
gab6jxml7#
会打印:
{"obj":[]}
我希望是打印 {"obj":{5:"设置成功"}} obj是对象 不是数组
我用的最新的2.0.16