动态迭代并在json对象上创建值

时间:2013-03-07 01:00:57

标签: javascript jquery json

我有一个程序,其中有一个像这样的json:

{
    "templateName":"example string",
    "parentReference":
    {
        "link":"http://host:port/path/to/resource"
    },
    "overrides":
    {
        "vars":
        [
            {
                "name":"example string",
                "isRequired":false,
                "defaultValue":"example string",
                "provider":"example string",
                "providerType":"NONE"
            }
        ],
        "tables":
        [
            {
                "name":"example string",
                "address":"example string"
            }
        ]
    },
    "properties":
    [
        null,null
    ]
}

所以现在这个JSON有数组类型,对象类型和字符串类型,我需要构建一个查询参数,我需要在其中覆盖JSON中存在的所有字段

示例查询:

https://www.esxample.xom/abc?$filter=templateName%20eq%20%27suchita%27%20or&$top=20

这里,在这个查询中,templateName eq' suchita'是顶级json字符串,但是如果json值是一个数组或另一个嵌套的json,那么我需要将它表示为 覆盖/ vars / providerType这样的东西。

我试过这个

for (var key in data) 
{
    switch ($.type(data[key])) 
    {
        case "string":
            filterParams.push(key + " eq " + "'" + events.textVal + "'");
        break;

        case "object":
            var dat=self._parseValues(data[key],key);
            if(dat.isMoreObject)
            {
                window.console.log(dat.parsedData,"in true",dat.moreData);
            }
            else
            {
                window.console.log(dat.parsedData,"in false");
            }
        break;

        case "array":
            window.console.log("in array",key);
        break;
    }
}

_parseValues:function(data,prefix)
{
    var resultData=[],resultSet={};
    window.console.log(data,"is in parse method");
    for(var key in data)
    {
        resultData.push(prefix+'/'+key);
        if($.type(data[key])=="object"||$.type(data[key])=="array")
        {
            resultSet={parsedData:resultData,isMoreObject:true,moreData:data[key]};
        }
        else
        {
            resultSet={parsedData:resultData,isMoreObject:false};
        }
    }
    window.console.log(resultData);
    return resultSet;
}

我遇到了如何有效地使这个嵌套的json使用'/'

加入父级的问题

0 个答案:

没有答案