如何从JSON字符串中读取特定的字符串对象

时间:2017-07-31 10:29:20

标签: javascript angularjs json

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

"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
}

2 个答案:

答案 0 :(得分:1)

#将JavaScript数据结构转换为字符串

#include <string> #include <iostream> #include <regex> using namespace std; int main() { std::regex r(R"(#.*|(\w+:\w+))"); std::string s = "AA:BB CC:DD EE:FF #this is a comment XX:YY"; for(std::sregex_iterator i = std::sregex_iterator(s.begin(), s.end(), r); i != std::sregex_iterator(); ++i) { std::smatch m = *i; std::cout << m[1].str() << '\n'; } return 0; } 属性,用于读取对象JSON.stringify属性。

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

  1. (如果你传递一个对象):完全忘掉JSON。删除所有与JSON相关的函数。
  2. (如果您传递的是JSON字符串):仅使用test.FromUserId,仅在FromUserId上使用。
  3. 然后,您需要通过数据结构的每个层进行访问。您不能忽略顶级和数据之间的所有对象。

    即。您需要JSON.parse而不是notification

    (如果案例2将notification.message.android.data.FromUserId替换为test.FromUserId,但您仍需要明确访问notification图层。

答案 1 :(得分: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
}