2017-07-31 52 views
-3

如何从此JSON字符串中获取特定值。我想获得嵌套的嵌套JSON对象"FromUserId": "bd079f57"并将其传递给Javascript函数。如何从JSON字符串中读取特定字符串对象

"notification":{ 
     "title" :"Test", 
     "message" : "Message", 
      "android": { 
       "data": { 
         "priority": "2", 
         "profile": "profile", 
         "message": "xxx has sent you a Message.", 
         "style": "inbox", 
         "noteId": "1", 
         "visibility": "1", 
         "title": "Test", 
         "badge": "12",     
         "FromUserId": "bd079f57"        
         } 
        } 
       } 



"onNotification": function (notification) {   
         var obj = JSON.parse(notification.message.android.data.FromUserId); 
         // How to pass this test.FromUserId to ReadData function.      
         ReadData(obj) 
        } 
$scope.ReadData(obj){ 
//further process of json 
} 
+0

VAR OBJ = JSON.parse(试验); ReadData(test.notification.android.data.FromUserId); 虽然我不是100%确定你的json是有效的,但我认为它并不像上面那样。 –

+1

你收到字符串了吗?如果是,然后解析它像'JSON.prase(_your_json)',然后'notification.android.data.FromUserId'? – Rahul

+0

JSON.parse(notification.FromUserId)应该是JSON.parse(通知) – james

回答

0

你可以象下面这样:

"onNotification": function (notification) {   
         var test = JSON.parse(notification); 
         var obj= test.notification.message.android.data.FromUserId; 
         // How to pass this test.FromUserId to ReadData function.      
         ReadData(obj) 
        } 
$scope.ReadData(obj){ 
//further process of json 
} 
+0

downvoter请说明理由 – Rahul

1

JSON.stringify一个JavaScript数据结构转换为

test.FromUserId属性以读取FromUserId属性对象

目前尚不清楚输入到你的功能是什么,但你需要:

  1. (如果您传递的对象):完全忘记JSON。删除所有与JSON相关的功能。
  2. (如果您传递的是JSON字符串):仅使用JSON.parse,仅在notification上使用它。

然后您需要通过访问您的数据结构的每个层。您不能忽略顶层和数据之间的所有对象。

即您需要notification.message.android.data.FromUserId而不是test.FromUserId

(在情况2中,将notification替换为test,但您仍然需要明确地访问message.android.data图层)。

+0

'test.FromUserId'将会是'undefined',因为'test'是一个字符串。 – George

+0

@George - 如果遵循此答案中的说明,'test'不会是字符串。 – Quentin