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

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -