Amos_Mike
asked on
How do i rename a key in JSONObject
i am trying to rename "displayName" key to"text",
where key "dispalyname" is a part of JSONArray which is nested in JSONObject.
like:
{"jsonText":[
{"description":"Employee", "displayNa me":"Guill aumin, Xavier","email":"xguillaum in@hershey s.com","lo cation":"C arretera GDL-ElCastilloKM8.05","tit le":"Finan cial Coordinator Global Exports","userId":"HERXGG4 0"},
{"description":"Former Employee","displayName":"L ugo, Javier","email":"JLugo@Her sheys.com" ,"location ":"","titl e":"Specia l Projects Manager","userId":"HERJEL4 0"},
{"description":"Employee", "displayNa me":"Plitn ick, Xavier F","email":"HFXFP001@hersh eys.com"," location": "6 Scotch Pine Drive","title":"HZ_1526_Ms t Wrap Mech","userId":"HFXFP001"}
]}
Can anyone suggest way to rename ?
where key "dispalyname" is a part of JSONArray which is nested in JSONObject.
like:
{"jsonText":[
{"description":"Employee",
{"description":"Former Employee","displayName":"L
{"description":"Employee",
]}
Can anyone suggest way to rename ?
JSONArray jsonArray = new JSONArray();
JSONObject jsonObj = new JSONObject();
try {
Collection<User> user = UserManager.getInstance()
.findUsersByName(name);
jsonArray.addAll(user);
jsonObj.put("jsonText", jsonArray);
} catch (Exception e) {
e.printStackTrace();
}
String jsonString = jsonObj.toString();
System.out.println(jsonString);
Perhaps add the new key with the value and remove the old ?
In JS:
<script>
jsonText = [ { "description" : "Employee",
"displayName" : "Guillaumin, Xavier",
"email" : "xguillaumin@hersheys.com",
"location" : "Carretera GDL-ElCastilloKM8.05",
"title" : "Financial Coordinator Global Exports",
"userId" : "HERXGG40"
},
{ "description" : "Former Employee",
"displayName" : "Lugo, Javier",
"email" : "JLugo@Hersheys.com",
"location" : "",
"title" : "Special Projects Manager",
"userId" : "HERJEL40"
},
{ "description" : "Employee",
"displayName" : "Plitnick, Xavier F",
"email" : "HFXFP001@hersheys.com",
"location" : "6 Scotch Pine Drive",
"title" : "HZ_1526_Mst Wrap Mech",
"userId" : "HFXFP001"
}
]
jsonText[0].text=jsonText[0].displayName
delete jsonText[0].displayName;
alert(jsonText[0].text)
alert(jsonText[0].displayName)
</script>
ASKER
mplugjan
"jsonText" is a part of JSON object, it's a key in Json Object. I am sorry, I cudn't figure out what are you trying to convey?
"jsonText" is a part of JSON object, it's a key in Json Object. I am sorry, I cudn't figure out what are you trying to convey?
trying to convey you probably need to copy the key and delete the old.
Anyway why do you want to rename?
Anyway why do you want to rename?
ASKER
K got your point..
Thanks , but the change i am trying to do is on server side i.e. in a servlet.
So i don't think this will help.
I am passing this JSON object to my javascript and there my jquery will read it for an JSONsuggest function.
my JS file for JSON suggest (plugin in jquery) expects the searchdata key to be "text", that's why i need to rename it from displayName to text
Thanks , but the change i am trying to do is on server side i.e. in a servlet.
So i don't think this will help.
I am passing this JSON object to my javascript and there my jquery will read it for an JSONsuggest function.
my JS file for JSON suggest (plugin in jquery) expects the searchdata key to be "text", that's why i need to rename it from displayName to text
And not easier to change the JS?
ASKER
I know that could be the solution, but the thing is i am using that specific key from JS at other places in my application.
Moreover i was curious if there's a workaround, for what i have asked.
Moreover i was curious if there's a workaround, for what i have asked.
If it is not a huge amount of data, ADD the data to a new key
ASKER
i got the solution, i sat and applied my brain's deepest nerves to get it working in JAVA servlet itself.
I am calling this mapBeans fxn, and replacing my fields from JSONArray.
this fxn references the UserMappingBean which has getter and setter for Text field.
It works fine for me.
Thanks for the help.
I am calling this mapBeans fxn, and replacing my fields from JSONArray.
this fxn references the UserMappingBean which has getter and setter for Text field.
It works fine for me.
Thanks for the help.
private Collection<UserMappingBean> mapBeans(Collection<User> users) {
List<UserMappingBean> beans = new LinkedList<UserMappingBean>();
for (User user: users) {
UserMappingBean b = new UserMappingBean();
b.setText(user.getDisplayName());
beans.add(b);
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.