2012-01-16 3 views
0

У меня есть JSON, как в примере (на стороне сервера)Titanium Appcelerator - получение JSON в обратном порядке

myJSON = { 
     "details":[ 
      {"ui":"3"}, 
      {"vi":"7"}, 
      {"p" :"c:\"} 
     ], 
     "flowers":[ 
      {"bla"}, 
      {"bla"}, 
      {"bla"}, 
     ], 
     "examples":[ 
     ] 
}; 

Теперь в Titanium я потянув этот JSON:

var xhr = Ti.Network.createHTTPClient(); 
    xhr.onerror = function(e){ 
        Ti.API.error('Bad Server =>' + e.error); 
      } 

    xhr.open('POST', 'http://.....'); 
    xhr.send(); 

    xhr.onload = function(){ 
       response = JSON.parse(this.responseText); 
      } 

Теперь, когда я пытаюсь предупредить «ответ» значение, я вижу что-то вроде этого:

myJSON = { 
     "examples":[ 
     ], 
     "flowers":[ 
      {"bla"}, 
      {"bla"}, 
      {"bla"}, 
     ], 
     "details":[ 
      {"ui":"3"}, 
      {"vi":"7"}, 
      {"p" :"c:\"} 
     ], 
}; 

ли кто-нибудь может дать мне представление о том, почему это он обращенном?

+0

Вам нужно избежать обратного слэша из 'c: \\' – noob

ответ

3

Порядок свойств не гарантируется или значим в JSON (или в буквальной нотации JavaScript или в JavaScript-объектах в целом). Эти объекты эквивалентны:

{ 
    "one": 1, 
    "two": 2 
} 

и

{ 
    "two": 2, 
    "one": 1 
} 

(Кроме того, необходимо, чтобы избежать \ в {"p" :"c:\"}, например:. {"p" :"c:\\"})

Для поддержания порядка, вы должны использовать массив, как и у вас для details и flowers значений (обратите внимание, что они не были отменены).

Также обратите внимание на то, что вы цитировали не JSON. Под рукой стоит myJSON = ... в начале. То, что вы процитировали, представляет собой оператор присваивания с использованием символьной нотации объекта JavaScript (например, инициализатора объекта) для правой части.

Смежные вопросы