Javascript 插件firefox php请求
我正在尝试开发Firefox扩展 问题:Javascript 插件firefox php请求,javascript,php,json,firefox-addon,firefox-addon-sdk,Javascript,Php,Json,Firefox Addon,Firefox Addon Sdk,我正在尝试开发Firefox扩展 问题: var Request = require("sdk/request").Request; var latestTweetRequest = Request({ url: "file.php", onComplete: function (response) { var List = response.json; } }); 我想使用这个请求函数将json从php文件解析为数组(这里列出) php my php文件正确地回显json
var Request = require("sdk/request").Request;
var latestTweetRequest = Request({
url: "file.php",
onComplete: function (response) {
var List = response.json;
}
});
我想使用这个请求函数将json从php文件解析为数组(这里列出)
php my php文件正确地回显json格式,但我无法将数据转换为javascript数组,以便在我的插件中使用它。
如果有比使用此功能更好的方法,请告诉我:)尝试以下方法:
JSON.parse和JSON.stringify
var Request = require("sdk/request").Request;
var latestTweetRequest = Request({
url: "file.php",
onComplete: function (response) {
var List = JSON.parse(response.json);
}
});
使用双引号是非常重要的
如果您对JSON.parse有问题。将数组复制到scratchpad,然后在其上运行JSON.stringify,然后确保php文件与strignified结果匹配
如果插件SDK没有JSON,那么如果有,就需要该模块。如果没有比require('chrome')更合适的组件,那么Noitidarts代码中就有一个bug 为什么要解析request.JSON?如果要解析,请按请求执行。text 但是,在请求模块尝试解析时,无需使用json.parse,如果成功,则返回request.json 请看这里:
var Request = require("sdk/request").Request;
var latestTweetRequest = Request({
url: "https://api.twitter.com/1/statuses/user_timeline.json?screen_name=mozhacks&count=1",
onComplete: function (response) {
var tweet = response.json[0];
console.log("User: " + tweet.user.screen_name);
console.log("Tweet: " + tweet.text);
}
});
// Be a good consumer and check for rate limiting before doing more.
Request({
url: "http://api.twitter.com/1/account/rate_limit_status.json",
onComplete: function (response) {
if (response.json.remaining_hits) {
latestTweetRequest.get();
} else {
console.log("You have been rate limited!");
}
}
}).get();
因此,可能的问题是php没有输出json.parse可以读取的json字符串。确保使用“
。通过在虚拟对象上运行json.stringify来确定php文件应该返回什么。例如:
var obj = {myarr:[1,8,9,7,89,0,'ji'],strr:'khhkjh',anothrtObj:{1:45,56:8}};
alert(JSON.stringify(obj)) //{"myarr":[1,8,9,7,89,0,"ji"],"strr":"khhkjh","anothrtObj":{"1":45,"56":8}}
因此,现在在php中,确保输出的文本符合此格式
{“myarr”:[1,8,9,7,89,0,“ji”],“strr”:“khhkjh”,“anothrtObj”:{“1:45,56:8}
如果您的php输出类似于下面的JSON.parse,那么它将失败,因此request.JSON将为空
{myarr:[1,8,9,7,89,0,“ji”],strr:“khhkjh”,anothrtObj:{“1”:45,“56”:8}
或
{'myarr':[1,8,9,7,89,0,“ji”],'strr':“khhkjh”,'anothrtObj':{“1”:45,“56”:8}
或
{'myarr':[1,8,9,7,89,0,'ji'],'strr':'khkhkjh','anothrtObj':{'1':45,'56':8}
你好:)谢谢你的回答:)我可以在本地测试吗?url:“file.php”“使用xamp serverCool man,它有效吗?只是为了我自己的知识,所以将来如果有人回答,我可以告诉他们同样的答案?sdk有JSON对象吗?我想是的,他有,但我无法测试它:/i认为url:不需要一个php文件:/谢谢你的回答:)但我已经尝试使用这个函数,但它不起作用:/i我真的不知道为什么:(我的php文件回显json文件的正确形式。我需要在我的addonWhat函数中使用一个数组?将php输出的内容粘贴到这里。{“u1”:{“id”:1,“obj”:“abc1”,“type”:“t1”},“u2”:{“id”:2,“obj”:“abc2”,“type”:“t2”},“u3”:{“id”:3,“obj”:“abc3”,“type”:“t1”}}这是.php文件echo的内容,我想创建一个objs数组:abc1 abc2 abc3Hmm您的php输出很好。所以对它的请求实际上是在发出请求。json==null?您尝试过request.json[0]吗?