我有一个属性文件,用户可以在其中定义完整的字段名,例如:
league.firstname
league.lastName
现在在我的代码中,我有一个传入的json,我想首先检索现有的值,然后编辑属性文件中提到的字段的值。在本例中,检索并编辑league.firstname和league.lastname字段的值。json看起来像:
{
"_internal": {
"pubDateTime": "2017-12-10 11:42:23.504",
"xslt": "xsl/league/roster/marty_active_players.xsl",
"eventName": "league_roster"
},
"league": {
{
"firstName": "Alex",
"lastName": "Abrines",
"personId": "203518",
"teamId": "1610612760"
}
}
}
现在我知道我可以这样做:
// retrieve values
String fName = jsonObj.getJSONObject("league").getString("firstName");
String lName = jsonObj.getJSONObject("league").getString("lastName");
// put new values
jsonObj.getJSONObject("league").put("firstName", "newVal1");
jsonObj.getJSONObject("league").put("lastName", "newVal2");
但我如何动态地实现这一点。例如,属性文件类似于:
parentObj.child1.child2.child3
现在我想编辑这个4层深的json,所以我想做如下操作:
// how to do the following
String oldVal = jsonObj.getString("parentObj.child1.child2.child3");
jsonObj.put("parentObj.child1.child2.child3", "newVal");
注:
json深度的级别可以是1<长度<100。
用户可以在属性文件中输入任何相关值。如果该键在json中不存在,则需要捕获异常。
传入的json格式不固定。
暂无答案!
目前还没有任何答案,快来回答吧!