Java JSon根据应用于其他节点的条件选择节点?

Java JSon根据应用于其他节点的条件选择节点?,java,json,solr,jackson,Java,Json,Solr,Jackson,我有一个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":[ { "

我有一个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"]}]
  }}
我正在使用Jackson进行解析。现在的问题是我想根据solr_日期选择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"));

你可以这样做,也许:

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];
}
var docs=json.response.docs;
var max=json.response.numFound;
var url=[];

对于(var i=0;我这里的json.response.docs是什么?我在json中找不到类似的东西?也粘贴我的java代码。我必须查找值(response)吗?json是你的json;response.docs是你访问json对象成员的方式。对不起,我没有看到它是在java中,这个解决方案是针对js:)但你给我指明了方向。我认为我应该在Java中将日期和url存储在一个元组中,然后根据另一个元组选择一个,前提是solr_date和solr_url的数量相同,实际上是相同的。谢谢,方式是可以的,但语言不是;)