2013-07-28 1 views
0

나는이 JSON이 : 나는 구문 분석 잭슨을 사용하고JSon 선택 노드는 다른 노드에 적용된 조건을 기반으로합니까?

{ 
    "responseHeader":{ 
    "status":0, 
    "QTime":0, 
    "params":{ 
     "fl":"solr_url, solr_date", 
     "indent":"true", 
     "q":"solr_body:party", 
     "wt":"json"}}, 
    "response":{"numFound":19,"start":0,"docs":[ 
     { 
     "solr_date":"2013-06-19T13:48:02Z", 
     "solr_url":["http://blogs.economictimes.indiatimes.com/urbanissues"]}, 
     { 
     "solr_date":"2013-07-27T13:48:02Z", 
     "solr_url":["http://blogs.economictimes.indiatimes.com/outsideedge"]}, 
     { 
     "solr_date":"2013-07-27T13:48:02Z", 
     "solr_url":["http://blogs.economictimes.indiatimes.com/outsideedge/entry/in-defense-of-advani"]}, 
     { 
     "solr_date":"2013-07-25T13:48:02Z", 
     "solr_url":["http://blogs.economictimes.indiatimes.com/serendipity"]}, 
     { 
     "solr_date":"2013-07-26T13:48:02Z", 
     "solr_url":["http://blogs.economictimes.indiatimes.com/Ragtime"]}, 
     { 
     "solr_date":"2013-07-24T13:48:02Z", 
     "solr_url":["http://blogs.economictimes.indiatimes.com/SilkStalkings"]}, 
     { 
     "solr_date":"2013-07-28T13:48:02Z", 
     "solr_url":["http://blogs.economictimes.indiatimes.com/RaisinaWatch"]}, 
     { 
     "solr_date":"2013-07-25T13:48:02Z", 
     "solr_url":["http://blogs.economictimes.indiatimes.com/Cursor/entry/the-unbearable-lightness-of-advani-s-rebellion"]}, 
     { 
     "solr_date":"2013-07-30T13:48:02Z", 
     "solr_url":["http://blogs.reuters.com/great-debate/2013/06/17/the-real-irs-scandal/"]}, 
     { 
     "solr_date":"2013-07-29T13:48:02Z", 
     "solr_url":["http://blogs.reuters.com/johncabell"]}] 
    }} 

합니다. 이제 문제는 solr_date를 기반으로 solr_url을 선택하려고합니다. 이것은 DOM 구문 분석에서 단순 해 보이지만 Json에서는 수행하기가 정말 어렵습니다. 날짜가 7 월 18 일보다 큰 경우 (이미 날짜 논리를 완료했습니다) solr_url을 선택한다고 가정합니다. 이걸 좀 도와 주실 래요?

ObjectMapper mapper = new ObjectMapper(); 
     DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
     df.setTimeZone(TimeZone.getTimeZone("UTC")); 
     JsonNode node = mapper.readTree(new URL("json output url")); 

답변

1

당신은 아마이 방법을 수행 할 수 있습니다

var docs=json.response.docs; 
var max=json.response.numFound; 
var urls=[]; 

for(var i=0;i<max;i++){ 
    if(myDateLogicFunc(docs[i].solr_date)) 
      urls[]=docs[i].solr_url[0]; 
} 

이 URL이 날짜 로직을 일치 느릅 나무 지금 URL을 배열에 저장됩니다. 정말 DOM 구문 분석보다 더 어렵지 않다

는 "어려움"배열이나 객체를 처리하는 것입니다.

+0

여기 json.response.docs 무엇인가? 나는 Json에서 그런 것을 찾지 못했습니까? 내 Java 코드도 붙여 넣기. findValues ​​(응답)를 찾아야합니까? – akshayb

+0

json이 json입니다. response.docs는 json 객체의 멤버에 액세스하는 방법입니다. – Pierre

+0

죄송합니다, 나는 그것을 자바에 있었다 보지 못했다,이 솔루션은 : JS에 대한 – Pierre

관련 문제