How to properly uplevel a json key in java? Why is the json not changing? -
i have array "myarray" this:
[{ name: john, age: { years:18 }, computer_skills: { years:4 }, mile_runner: { years:2 } }]
how uplevel properly? using minimal-json, following:
jsonarray jsonarray = jsonarray.readfrom(myarray); for( jsonvalue val : jsonarray) { jsonobject myobj = val.asobject(); for( jsonobject.member mymember : myobj ) { if(mymember.getvalue().isobject()) { jsonobject mymemberobj = mymember.getvalue().asobject(); (jsonobject.member nestedmember : mymemberobj) { if(nestedmember.getname().equals("years")) { myobj.set(mymember.getname(), nestedmember.getvalue()); break; } } } } } system.out.println(jsonarray);
the last line when print out jsonarray, looks if nothing has changed whatsoever. doing wrong? want end following:
[{ name: john, age: 18 computer_skills: 4 mile_runner: 2 }]
i tried using this: https://github.com/ralfstx/minimal-json. alternatives welcome. want not have create model object contains key value pairs every single key value in object within "myarray". used python simple access , replace.
after researching found out json array invalid, there quotes missing on @ least keys (see why need quotes). @ same code used modified input 'myarray':
string myarray = "[{\"name\":\"john\",\"age\":{\"years\":18},\"computer_skills\":{\"years\":4},\"mile_runner\":{\"years\":2}}]"; jsonarray jsonarray = jsonarray.readfrom(myarray); for( jsonvalue val : jsonarray) { jsonobject myobj = val.asobject(); for( jsonobject.member mymember : myobj ) { if(mymember.getvalue().isobject()) { jsonobject mymemberobj = mymember.getvalue().asobject(); (jsonobject.member nestedmember : mymemberobj) { if(nestedmember.getname().equals("years")) { myobj.set(mymember.getname(), nestedmember.getvalue()); break; } } } } } system.out.println(jsonarray);
this code prints:
[{"name":"john","age":18,"computer_skills":4,"mile_runner":2}]
what expected result.
Comments
Post a Comment