Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 返回[object object]而不是数组的Json_Php_Javascript_Json_Sencha Touch - Fatal编程技术网

Php 返回[object object]而不是数组的Json

Php 返回[object object]而不是数组的Json,php,javascript,json,sencha-touch,Php,Javascript,Json,Sencha Touch,我将json数据输入Sencha touch应用程序。以下是json: -(当然,为了示例而修改) 当我返回“images”和console.log时,它将返回以下内容: images: "[object Object],[object Object],[object Object],[object Object],[object Object]" 而不是URL 我的json编码器如下所示(我正在从Wordpress站点提取数据): 我希望它能返回图像URL数组,而不是我当前得到的[objec

我将json数据输入Sencha touch应用程序。以下是json:

-(当然,为了示例而修改)

当我返回“images”和console.log时,它将返回以下内容:

images: "[object Object],[object Object],[object Object],[object Object],[object Object]"
而不是URL

我的json编码器如下所示(我正在从Wordpress站点提取数据):

我希望它能返回图像URL数组,而不是我当前得到的[object]

编辑:下面是我用来尝试拉出imageurl的sencha代码:

    console.log(this.record.data);

    console.log(this.record.data.images);
    console.log(this.record.data.images.length);

    var numberOfPages = this.record.data.images.length;
    // Create pages for the carousel
    var pages = [];
    for (var i=0; i<numberOfPages; i++) {
        pages.push(new Ext.Component({
            id: 'page'+i,
            cls: 'page',
            tpl: '<tpl for=".">{imageurl}</tpl>',
            //html:'test',
        }));
    }

    // Create the carousel
    this.carousel = new Ext.Carousel({
        id: 'carousel',
        title:'Gallery',
        iconCls:'photos2',
        defaults: {
            cls: 'card'
        },
        items: pages,
    });
console.log(this.record.data);
log(this.record.data.images);
log(this.record.data.images.length);
var numberOfPages=this.record.data.images.length;
//为旋转木马创建页面
var页面=[];

对于(var i=0;i在PHP中编码为JSON的关联数组,解码后会变成JavaScript中的对象。您看到的是正确和正常的。像访问JavaScript中的任何其他对象一样访问它们。

更新:抱歉,对于我给出的不相关示例

你的
页面[i]在哪里?更新(this.record.data.images);

你可以试试下面的方法-

var numberOfPages = this.record.data.length;
// Create pages for the carousel
var pages = [];
for (var i=0; i<numberOfPages; i++) {
    var tmp = new Ext.Component({
        id: 'page'+i,
        cls: 'page',
        tpl: '<tpl for=".">{imageurl}</tpl>'
    });
    tmp.update(this.record.data[i].images);
    pages.push(tmp);
}
var numberOfPages=this.record.data.length;
//为旋转木马创建页面
var页面=[];

因为(var i=0;i找到了答案,把它交给了里法特,因为他的答案是跳板

我把[object object]作为一个文字字符串来处理。我在Sencha touch之外编写了一个quick test.php,并能够让实际数组工作。我的第一个问题是json本身——它需要验证。你们都是正确的,感谢你们提供的线索

第二,当我让test.php文档正常工作时,我意识到它必须在Sencha本身中。字符串与它有关的唠叨感觉一直萦绕在我的脑海中。最后,我去了我的模型,发现我是如何提取图像的:

{name: "images", type: "string"},
我看到了字符串,然后啊哈一刻击中了它!这修复了它并给了我我的URL:

{name: "images"},

非常感谢Ignacio和Rifat。你们和我在一起,得到了(最终)出现的答案。再次感谢,希望这能帮助其他可能遇到类似问题的人。

我曾经在javascript后端遇到过类似问题。以下是使用JS的人的答案:

在发送对象数组之前,请确保对其进行字符串化:

JSON.stringify(array[i]);

当然,除非您只发送JSON,在这种情况下,发送常规JSON应该可以正常工作:)

这是否在IE的调试工具中?你是加入数组还是什么?你只有在将一个对象转换为字符串时才会得到这个。所以你的意思是我需要在Sencha Touchs end上解码它们?我不需要对任何其他数据进行解码,为什么要用这个?只是为了澄清它返回的是一个[object]字符串,而不是一个可以看到URL的数组。如果我执行record.data.length,它会给我一个字符计数,而不是说数组中有5个图像。它不会返回“[object]”字符串,它返回的对象在转换为字符串时与之类似。因此,我遗漏了一些东西。当请求json对象出现在应用程序中时,我需要对其进行解码?我是否应该能够打开控制台并查看日志并查看对象值?1)它们已经解码。2) 你为什么相信JavaScript是这样工作的。好的,2。老实说,无知。我要做的是使用sencha从对象中获取imageurl。我将使用sencha代码更新我的问题,我将使用该代码获取图像/imageurl。谢谢你的帮助和理解这个好主意,但有两个问题:1。numberofpages返回一个字符计数(一个例子是它创建了75张卡片,而不是5张用于图像)。2.this.record.data.images[i].imageurl只返回一张空卡,不返回任何内容。也许我没有激发imageurl?你能发布一个正确的JSON输出吗。您在上面提出的一个已被破坏:|我的json很长,但这里有一个新的pastbin,只有一篇文章,我认为它是正确的:为了回答您的更新问题,我的控制器使用以下命令将数据馈送到容器:var singlePost=App.views.postView.add({xtype:'postsingleview',record:options.record});我使用默认功能提取数据:默认值:{data:this.record.data}我认为它的方向是正确的,但是现在没有卡片出现,我不认为this.record.data.images调用了正确的数据。log(this.record.data.images);仅产生[对象对象],[对象对象],[对象对象],[对象对象对象],[对象对象]
JSON.stringify(array[i]);