覆盖对象中的默认属性

时间:2009-12-10 04:23:21

标签: javascript jquery json object

我想对一个php文件进行ajax调用,该文件在json中返回用户信息,然后获取该数据并将其放入对象属性

示例:

System = {
 prop1= ''
}

我只想覆盖prop1属性

即时使用jquery进行ajax调用

1 个答案:

答案 0 :(得分:0)

在PHP中设置JSON输出的最简单方法是简单地使用stdClass()对象并在其上调用json_encode()

$obj = new stdClass();
$obj->name = 'user name';
$obj->prop1 = 'property 1';

echo json_encode($obj);

从Ajax调用收到此消息后,您将拥有一个包含nameprop1属性的javascript对象。

如果要将现有对象的属性替换为从Ajax调用中获取的属性,则必须手动执行,即。检查所需属性的JSON结果,并将其设置在现有对象上。解决这个问题的方法是只在JSON中输出你想要的属性,然后通过遍历获取的ajax对象来使用它们。例如:

for(prop in fetchedAjaxObject) {
    existingObject.prop = x.prop;
}

修改

在回复下面的评论时,听起来你只想从JQuery调用的结果中获取JSON对象?

在这种情况下,您只需为ajax调用的“success”属性设置处理函数。结果自动传递给处理函数。 JQuery docs中有一些例子,但这里有一个基本的例子:

$.ajax({
    url: 'www.example.com',
    success: function(data) {
        //data is your JSON object
        yourObject.prop = data.prop1;
    }
});