如何从这个JSON字符串中提取数据?

时间:2014-05-22 16:41:55

标签: javascript jquery json

我是JSON和Jquery的新手,我找不到如何从这个JSON字符串中提取ProjectCode的值。

[
    {
        "ProjectID": 3,
        "CLustomerCode": "XYZ001",
        "ProjectCode": "YZPROJ1",
        "Description": "Project1",
        "IssueManager": "iant",
        "NotificationToggle": false,
        "ProjectStatus": null,
        "Added": "/Date(1400701295853}/",
        "Added By": "iant",
        "Changed": "/Date(1400701295853)/",
        "Changed By": "iant"
    },
    {
        "ProjectID": 4,
        "CustomerCode": "XYZ001",
        "ProjectCode": "XYXPROJ2",
        "Description": "Projecton:Project2",
        "IssweManager": "iant",
        "NotificationToggle": false,
        "Projectstatus": null,
        "Added": "lDate(1400701317980)/",
        "AddedBy": "iant",
        "Changed": "/Date(1400701317980)/",
        "Changed By": "iant"
    }
]

上面的字符串来自一个名为data的变量,它是stringify的返回值。我希望能够做类似

的事情
string proj = data[i].ProjectCode;

但intellisense不包含任何属性。

我对JSON知之甚少 - 感谢任何帮助。

感谢阅读。

4 个答案:

答案 0 :(得分:2)

使用parseJSON:

var obj = jQuery.parseJSON("{ 'name': 'Radiator' }");
alert(obj.name);

答案 1 :(得分:0)

您需要循环遍历响应中返回的每个对象,并在每个对象中获取ProjectCode属性。假设data变量是你的JSON,它应该可以工作:

$.each(data, function(i, obj) {
    console.log(obj.ProjectCode);
});

答案 2 :(得分:0)

使用JSON.parse():

var a; // Your JSON string
var b = JSON.parse(a);  //Your new JSON object
//You can access Project code, use index i in b[i].ProjectCode in a loop
var projectCode = b[0].ProjectCode;  

答案 3 :(得分:0)

您应该发布原始代码,以便更容易可视化这些内容。因为你要找的是ProjectCode的列表(在这种情况下 - [" XYZPROJ1"," XYZPROJ2"])。

看起来我们拥有的是项目的数组或列表([...])。每个项目都有ProjectIDCustomerCodeProjectCodeDescription等等......

因此,我们假设此JSON blob上有data个点。以下是访问ProjectCode的方法:

// Access the "i"th project code
var p_i_code = data[i].ProjectCode;

// How many projects?
var num_projects = data.length; // since data is a list of projects

// Want the list of project codes back? (I use underscore.js)
var project_codes = _.map(data, function(project) {
    return project.ProjectCode;
});