sencha touch 2.4.1 - получение значений массива, отправленных через строку json

Следующий код работает нормально,

// отправлено с php

echo("({'title':'$myTitle', 'message':'$myMessage'})");

// в бите ответа ajax в приложении "Управление сенсорным приложением sencha"

success: function(xhr,params)
{           
var data = Ext.JSON.decode(xhr.responseText.trim());
var aTitle=data.title;  //get the value of message, $myMessage
var aMessage=data.message;
console.log('Title:',aTitle,' - Message:',aMessage);
},

Это также, но я не могу получить отдельные данные, однако,

// из php, массив данных, как прежде, заголовок и сообщение, только их намного больше

$data=json_encode($myArray);  
echo "({'myData':'$data'})";

// в бите ответа ajax в приложении "Управление сенсорным приложением sencha"

success: function(xhr,params)
{           

var data = Ext.JSON.decode(xhr.responseText.trim());
var myArray=[];

Ext.Array.each(data.myData, function()
{
    myArray[count]= data.myData;    

    //this will spit out all the data from array.
    console.log('myArray contains:',myArray[count]);

    //but i wanted to select individual bit e.g.(pseudo code ish)
    myArray[0]=data.myData.title;

    or

    myArray[3]=data.myData.message; // that sort of thing

    count=count+1;          
 });
 },

В случае неудачи кто-нибудь может сказать мне, как это изменить:

// избавляемся от буквенно-цифровых символов myOutputString = myDataString.replace(/\W/g, '');

поэтому он избавляется от того же самого исключения - и, и.

тогда я могу просто получить нужные мне биты из данных таким образом (но не в предпочтительном варианте).

1 ответ

L.

Если вы обратитесь к документации API для Ext.Array здесь, http://docs-origin.sencha.com/touch/2.4/2.4.1-apidocs/.

Обратный вызов Ext.Array.each принимает несколько аргументов, первый из которых предназначен для данных, которые вы ищете. Поэтому я думаю, что вы хотите что-то вроде следующего.

Ext.Array.each(data.myData, function(data) {
 // Here data contains the data structure sent from your PHP code.
 console.log(data.title);
 console.log(data.message);
});

Надеюсь, это поможет!

Другие вопросы по тегам