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