我正在使用twitterapi获取php中的好友列表,我将结果编码为json数组,但是我无法解析javascript中的json数组。我已经验证了php生成的json数组及其有效的json阵列。以下是我的代码。
$friends = array();
$friend_list = array();
$myfriend = array();
$connection = new TwitterOAuth($CONSUMER_KEY, $CONSUMER_SECRET,oauth_token,oauth_token_secret);
$friends =$connection->get("https://api.twitter.com/1.1/friends/list.json?cursor=-1&screen_name=twitterapi&skip_status=true&include_user_entities=false&count=200);
foreach($friends as $friend) {
if(!empty($friend))
{
foreach($friend as $value)
{
$friend_list['id']=$value->id;
$friend_list['screen_name']= $value->screen_name;
$friend_list['name']= $value->name;
$friend_list['profile_image_url']= $value->profile_image_url;
$friend_list['location']= $value->location;
array_push($myfriend, $friend_list);
}
}
}
$newarray = json_encode($myfriend);
<script>
var obj1 = JSON.parse('<?php echo $newarray ;?>');
console.log(obj1); // am not getting anything in console
</script>
echo $newarray;
[
{
"id": 50393960,
"screen_name": "BillGates",
"name": "Bill Gates",
"profile_image_url": "http://pbs.twimg.com/profile_images/1884069342/BGtwitter_normal.JPG",
"location": "Seattle, WA"
},
{
"id": 141527741,
"screen_name": "prakashraaj",
"name": "Prakash Raj",
"profile_image_url": "http://pbs.twimg.com/profile_images/2951815972/ab32fb806b480d0dc761805ae4ef9775_normal.jpeg",
"location": "india"
},
{
"id": 88856792,
"screen_name": "aamir_khan",
"name": "Aamir Khan",
"profile_image_url": "http://pbs.twimg.com/profile_images/2254031972/_MG_2190_normal.jpeg",
"location": "Mumbai"
},
{
"id": 107318424,
"screen_name": "bipsluvurself",
"name": "Bipasha Basu",
"profile_image_url": "http://pbs.twimg.com/profile_images/419745345178832896/8JvqwEM9_normal.jpeg",
"location": "Mumbai, India"
}
]
请帮助,我坚持这个
答案 0 :(得分:1)
您可以直接输出json:
更改为:
var obj1 = <?php echo $newarray ;?>;
例如:
<?php
$newarray = json_encode(array('name' => 'srain'));
?>
var obj1 = <?php echo $newarray ;?>;
将输出:
var obj1 = {"name":"srain"};
的更新强> 的
如果您的js脚本与php代码不在同一个文件中,$newarray
将为空。
答案 1 :(得分:0)
如果没有关于如何验证json数组的信息,这是我可以推荐的。将您的JavaScript更改为:
<script>
var jsonString = '<?php echo $newarray ;?>';
console.log(jsonString);
var obj1 = JSON.parse(jsonString);
console.log(obj1); // am not getting anything in console
</script>
您可以在javascript控制台中查看jsonString
的内容。这应该会给你一些关于出了什么问题的提示。
注意:您从twitter获取JSON内容,将其转换为PHP数据结构并将其转换回JSON。将JSON字符串从twitter发送到javascript更有效 - 如果不需要过滤/更改twitter返回的数据。