2013-07-28 31 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代碼。我必須找到價值(迴應)嗎? – akshayb

+0

json是你的json; response.docs是你訪問json對象成員的方式。 – Pierre

+0

對不起,我沒有看到它是在java中,這個解決方案是爲js :) – Pierre

相關問題