我的JavaScript代码无法读取PHP代码生成的JSON.出了什么问题
My JavaScript code is not able to read the JSON generated by my PHP code. What is wrong?
我正在使用AJAX调用,并生成这个JSON对象,该对象被发送回JavaScript。当我在JavaScript中收到它时,我无法从中获取值。
PHP:
echo json_encode(array("results" => array(array("user" => $member['user']),array("company" => $member['company']))));
JS:
success: function(response)
{
for(var i = 0;i < response.results.length; i++)
{
sessionStorage.setItem('user',response.results[i].user);
sessionStorage.setItem('company',response.results[i].company);
}
}
我无法从收到的响应中读取任何值。
我得到的回复是这样的格式:
{"results":[{"user":"David"},{"company":"something"}]}
读取这个JSON对象的正确方式是什么?
由于您试图访问未定义的results[0]、company和results[1].user,并且由于对象中只定义了results[1].company和results[0]。user,如果您按如下方式更改PHP,则除非响应只是一个字符串,否则JavaScript应该可以工作:
echo json_encode( array(
"results" => array(
array(
"user" => $member['user'],
"company" => $member['company']
)
)
));
如果响应只是一个字符串,请更改您的JavaScript代码如下:
success: function(response)
{
response = JSON.parse(response);
或
dataType: "json",
success: function(response)
{
在JSON响应中,结果包含一个包含2个对象的数组。第一个包含用户,第二个包含公司。然而,在for循环中,您希望数组中的两个元素都具有user和company。看起来你只想发送一个用户和他们的公司。如果是这样的话,那么你的代码应该如下:
PHP:
echo json_encode(array("results" => array("user" => $member['user'],"company" => $member['company'])));
JS:
success: function(response)
{
sessionStorage.setItem('user',response.results.user);
sessionStorage.setItem('company',response.results.company);
}
你的回答会是这样的。
{"results":{"user":"David","company":"something"}}
相关文章:
- Ext.js从json构建模型关系的问题
- 将数据加载到使用JSON返回的表单字段时出现问题
- 在javascript中使用json数据导致问题
- 神秘的ajax json请求问题jQuery
- JavaScript/jQuery JSON数组问题-值为未定义
- 从第三方服务器发出解析json的问题
- 获取json结果的身份验证问题
- 关于复杂JSON解析(angularjs和javascript)的问题
- jQuery表单和Json问题
- NG重复角度“2层”JSON问题
- 遇到 d3.json 问题,不起作用
- googleapi和jquery的json问题
- JavaScript+JSON问题:无法加载照片/undefined.jpg
- nodeJS上的JSON问题
- 在rails中解析JSON问题
- 谷歌图表JSON问题
- IE9中的Javascript Json问题
- JSON问题和实现一些现有的JavaScript到这个混乱
- JSON问题与跨域.解析出iframe
- 简单的JSON问题…如何插入变量