2013-10-16 3 views
0

JSONPath를 사용하여 문제가 발생했습니다. 이것은 내가 무엇을 가지고 :JSONPath 패턴 유지 구조체 구조

[ 
    { 
     "id": { 
      "type": "literal", 
      "value": "123456789", 
      "datatype": "http://www.w3.org/2001/XMLSchema#string" 
     }, 
     "name": { 
      "type": "literal", 
      "value": "John Doe", 
      "datatype": "http://www.w3.org/2001/XMLSchema#string" 
     } 
    }, 
    { 
     "id": { 
      "type": "literal", 
      "value": "2123456789", 
      "datatype": "http://www.w3.org/2001/XMLSchema#string" 
     }, 
     "name": { 
      "type": "literal", 
      "value": "Jane Doe", 
      "datatype": "http://www.w3.org/2001/XMLSchema#string" 
    } 
} 

] } ]

그리고 제가 패턴을 적용한 후 좀하고 싶습니다 것은 :

[ 
    { 
     "id": "123456789", 
     "name": "John Doe" 

    }, 
    { 
     "id": "2123456789", 
     "name": "Jane Doe" 

    } 
] 

이 가능합니까? 내가하고있는 최선은 ["123456789", "John Doe","2123456789","Jane Doe"]

패턴이 어떻게 생겼을 까?

답변

-1

DefiantJS (http://defianjs.com)를 사용하면 XPath 표현식을 사용하여 JSON 구조를 쿼리 할 수 ​​있습니다. DefiantJS는 전역 객체 JSON을 "search"메서드로 확장하고 배열과 유사한 객체로 일치를 반환합니다.

다음은 예제 코드입니다.

var data = [ 
     { 
      "id": { 
      "type": "literal", 
      "value": "123456789", 
      "datatype": "http://www.w3.org/2001/XMLSchema#string" 
      }, 
      "name": { 
      "type": "literal", 
      "value": "John Doe", 
      "datatype": "http://www.w3.org/2001/XMLSchema#string" 
      } 
     }, 
     { 
      "id": { 
      "type": "literal", 
      "value": "2123456789", 
      "datatype": "http://www.w3.org/2001/XMLSchema#string" 
      }, 
      "name": { 
      "type": "literal", 
      "value": "Jane Doe", 
      "datatype": "http://www.w3.org/2001/XMLSchema#string" 
      } 
     } 
    ], 
    found = JSON.search(data, '//value'), 
    str = ''; 

for (var i=0; i<found.length; i++) { 
    str += found[i] +'<br/>'; 
} 

document.getElementById('output').innerHTML = str; 

이 코드를 실제로 보려면이 피들을 확인하십시오. http://jsfiddle.net/hbi99/4BZMm/

더 유용한 XPath 표현식을 보려면 XPath 계산기를 참조하십시오. http://defiantjs.com/#xpath_evaluator