Javascript 插件firefox php请求

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

我正在尝试开发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格式,但我无法将数据转换为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]吗?