使用JQuery更改JSON密钥的值

时间:2011-12-08 07:36:41

标签: ajax json jquery

我有一些json代码,其中包含多个对象,如下:

[
{
    "MNGR_NAME": "Mark",
    "MGR_ID": "M44",
    "EMP_ID": "1849"
},
{
    "PROJ_ID": "88421",
    "PROJ_NAME": "ABC",
    "PROJ_ALLOC_NO": "49"
}

我的JSON循环片段是

function ServiceSucceeded(res) 
{
 for (index in res) {
    var obj = res[index];
    for (objectIndex in obj) {
        if (objectIndex != "MGR_ID" && objectIndex != "PROJ_ID") {
            alert(objectIndex + ": " + obj[objectIndex]);
        }
    }
 }
}

我已经跳过了不需要显示的MGR_ID和PROJ_ID的警告,请问如何将objectIndex值替换/格式化为正确的名称?将MNGR_NAME称为经理名称,将PROJ_NAME称为项目名称?我打算在格式中附加格式化的值(正确的名称)以供显示。

非常感谢任何帮助。

由于

3 个答案:

答案 0 :(得分:0)

将正确的名称存储在结构中,然后在输出时解码它们。例如:

displayNames = {
  "MNGR_NAME" : "Manager Name",
  "PROJ_NAME" : "Project Name" //etc...
};

function ServiceSucceeded(res) 
{
 for (index in res) {
    var obj = res[index];
    for (objectIndex in obj) {
        if (objectIndex != "MGR_ID" && objectIndex != "PROJ_ID") {
            alert(displayNames[objectIndex] + ": " + obj[objectIndex]);
        }
    }
 }
}

答案 1 :(得分:0)

我使用查找表:

var displayLabels = {  MNGR_NAME: 'Manager Name', PROJ_NAME : 'Project name' };

答案 2 :(得分:0)

使用http://www.railodeveloper.com/jquery-tojson-function/toJSON.js,您可以执行此操作

var objData = $.parseJSON(myJSON);     // parse it
objData.jsonIndex = 'some new value';  // change a value
myJSON = $.toJSON(objData);            // resave it

我实际上用它来解决别人的问题和made a jsFiddle for it too