String json = "{"name":"Tom", "age":25.00, "score":"48.56"}";
通过jsonPath "$.age"获取到25.00而不是25.0,如果json是String json = "{"name":"Tom", "age":25.000, "score":"48.56"}"; 则取到25.000,一句话就是不要随意改变原数字,支持任何jsonPath
jsonPath如何parse后还保留末尾0
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在Java中,JSON路径(JSON Path)是一种表达式方法,它允许我们在JSON字符串中查找、选择或更新特定的对象或字段。
在你的例子中,我们想要提取json中的第二个值(即年龄),也就是
$.age
。然而,当我们试图访问第二个元素时,结果却是一个数字,而不是我们期望的结果。这是因为,虽然Java中的JSON类可以解析 JSON 字符串,并返回 JSON 对象的引用,但是 JSON 对象本身并没有第二层属性。因此,我们需要通过 JSON Path 来访问和操作这些属性。
要解决这个问题,我们可以创建一个 JSON 对象,并将其赋值给变量
jsonObj
:String json = "{\"name\":\"Tom\", \"age\":25.00, \"score\":\"48.56\"}"; JSONObject jsonObj = new JSONObject(json);
然后,我们可以使用 JSON Path 来访问第二个属性(在这种情况下是年龄):
double age = jsonObj.getDouble("age");
这个解冑给出了正确的年龄值。
关于你的问题中的提问部分,JSON对象并不会改变原数字,如果你尝试修改 JSON 对象的某个属性(比如
score
属性),那么在新的数据加载后,这个属性的值将不再是原始的值。如果你需要更精确地控制属性的值,你需要在创建 JSON 对象时指定其格式。此外,你需要确保你的JSON路径是从JSON对象的根开始的,而不是从某些其他对象开始的。这可以通过使用JavaScript的JSON.parse()函数来实现,这样就可以避免尝试访问未定义的对象属性。例如:
String json = "{\"name\":\"Tom\", \"age\":25.00, \"score\":\"48.56\"}"; JSONObject jsonObj = JSON.parse(json); double age = jsonObj.getDouble("age");
这里,我们使用了JSON.parse()函数将JSON字符串转换为JSON对象。然后,我们可以像访问其他对象属性一样访问这个年龄值。
解决评论 打赏 举报 编辑记录无用 1
悬赏问题
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看