2015-03-22 6 views
0

Данные, полученные из моего JSON.stringify, выглядят следующим образом.Извлечение данных из JSON.stringify

{"action":"deleted","data":{"latitude":9,"longititude":8,"_type":"locationcurrent","id":49,"user":"7"}} 

Но я не могу получить данные внутри объектов. В основном я хочу значение для действия, «удалено» и значения для моих данных, например id: «49». Но у меня возникают проблемы с использованием этого уравнения, чтобы попытаться получить данные.

function replacer(key, value) { 
      if (typeof value === "string") { 
       return value; 
      } 
      return undefined; 
     } 

     var jsonString = JSON.stringify(message, replacer); 
     console.log(jsonString); 

Все, что я вернусь из этого,

data:{} 
+0

Я смущен относительно того, что вы пытаетесь сделать. Но если вы снижаете JSON, чем хотите сделать var var = JSON.parse (message) 'Если вы создаете строку JSON (как вы делаете выше) и хотите получить доступ к свойствам, чем ее же' var obj = JSON.parse (jsonString); 'Тогда' var actionValue = obj.action; ' – Phatjam98

+0

вам не нужен ревизор для получения данных. на самом деле, вы не должны стягивать() вообще, если хотите использовать данные в виде отдельных фрагментов. 'message.action' и' message.data.id' кажутся вам именно такими. – dandavis

ответ

2

Ваша проблема заключается в том, что первый value, который передается в replacer является сам объект. Вы заменяете этот объект на undefined, потому что он не относится к типу string.

Вам это нужно изменить его таким образом:

function replacer(key, value) { 
    if (key === '' || typeof value === "string") { 
     return value; 
    } 
    return undefined; 
} 

Но Phatjam98 сказал, это не имеет особого смысла, чтобы отфильтровать одно значение таким образом.