2017-06-07 9 views
-2

私は以下のJSONデータを持っています。私はHOMEの電話番号を抽出したいと思います。私は職場の電話番号は欲しくない。あなたは私のためにJavaScript XPath式を書いてくれますか?JavaScriptでJSON XPathを抽出する

{ 
    "Response":{ 
     "Details":{ 
     "MemberDetails":[ 
      { 
       "DateOfBirth":"1969-04-03T00:00:00", 
       "FirstName":"MIRIDA", 
       "Gender":"M", 
       "LastName":"MEARES", 
       "MasterId":"rrrrr", 
       "PhoneList":[ 
        { 
        "number":"7088739304", 
        "type":"Home" 
        }, 
        { 
        "number":"7088739304", 
        "type":"Work" 
        } 
       ], 
       "PlatformPointerList":[ 
        { 
        "application":"", 
        "keyType":"AKAName", 
        "keyValue":"xxxxxx", 
        "source":"WPP" 
        }, 
        { 
        "application":"", 
        "keyType":"xxxx", 
        "keyValue":"xxx", 
        "source":"xxxx" 
        }, 
        { 
        "application":"", 
        "keyType":"xxxxx", 
        "keyValue":"xxxxxx", 
        "source":"ODS" 
        }, 
        { 
        "application":"", 
        "keyType":"PERSONID", 
        "keyValue":"xxxxx", 
        "source":"EM" 
        }, 
        { 
        "application":"", 
        "keyType":"PERSONID", 
        "keyValue":"xxxxxx", 
        "source":"WPP" 
        } 
       ], 
       "MemberId":"xxxxx", 
       "MemberDependentCode":"xxx", 
       "MemberSource":"xx" 
      } 
     ] 
     }, 
     "MetaData":{ 
     "CorrelationId":"undefined" 
     }, 
     "Status":{ 
     "type":"OK", 
     "code":"200", 

     } 
    } 
} 
+0

var respMemberDetails = JSONOut ["レスポンス"] ["詳細"] ["MemberDetails"]; var PhoneDetails = respMemberDetails [0] ["PhoneList"]; var homePhoneDetails = PhoneDetails [0] ["number"]; 私は最初の電話番号を抽出するために上記のコードを使用しました。しかし、番号はHOME番号またはWORK NUMBERになります。 したがって、私はHOME電話番号のみを抽出することを確認したいと思います – user1117723

+0

電話番号を抽出するたびに、そのタイプが自宅であるか職場であるかを確認してください...あなたのタイプ属性は正しい電話番号を得るのに役立ちます – zenwraight

+0

注:すべての質問について、読者は問題に直面しているいくつかの事前の努力を見て、自由な仕事をするように求められていないことを知るようにしたい。特に、XPathクエリ、SQLクエリ、および正規表現では、それぞれのタグがゼロエアの質問で満たされています。最初に@ user1117723で試して編集できるでしょうか? – halfer

答えて

2

はJavaScriptでXPathを使用してJSON構造を解析するためのネイティブメソッドがありませんので、あなたはいくつかの種類のライブラリを使用する必要があります。あなたのクエリが単純になり、という使い方https://github.com/wilhelm-murdoch/jQuery-JSONPath

、あなたの質問にjQueryのタグが含まれてきたように、jQueryの-JSONPathを選ぶとよいでしょうここ

var path = $.JSONPath({data: JSONOut}); 
homePhoneDetails = path.query("$.Response.Details.MemberDetails[0].PhoneList[?(@.type == 'Home')].number"); 

参照JSフィドルワーキング例えば:https://jsfiddle.net/qy4end8k/

2

サクソン-JSライブラリを使用して、あなたは、XPath 3.1式を使用することができ

map:find(parse-json($input), "PhoneList")?*[?type="Home"]?number 
関連する問題