代码之家  ›  专栏  ›  技术社区  ›  Dinosaurius

我应该使用哪个JSONPath表达式来分割JSON字符串?

  •  1
  • Dinosaurius  · 技术社区  · 9 年前

    SplitJson 为了将以下JSON文件拆分为2个流文件(根据 hits

        {"took":0,"timed_out":false,"_shards":
          {"total":5,"successful":5,"failed":0},
                "hits":{"total":2,"max_score":0.0,
                   "hits":   
                   [
                     {"_index":"my_index","_type":"my_entry","_id":"111","_score":0.0,"_source":{"ZoneId":"1","OriginId":"1"},
                      "fields":{"ttime":[11000]}},
    
                     {"_index":"my_index","_type":"my_entry","_id":"222","_score":0.0,"_source":{"ZoneId":"1","OriginId":"2"},
                      "fields":{"ttime":[5000]}}
    
                   ]
                 }
        }
    

    JsonPath Expression 我应该使用吗?我试过了 $.hits[*] 击打 . 就我而言,我有 hits[hits[...]] ,但我应该如何在表达式中指定它?

    我想要两个流文件:

    流程文件#1: {"_index":"my_index","_type":"my_entry","_id":"111","_score":0.0,"_source":{"ZoneId":"1","OriginId":"1"},"fields":{"ttime":[11000]}}

    {"_index":"my_index","_type":"my_entry","_id":"222","_score":0.0,"_source":{"ZoneId":"1","OriginId":"2"},"fields":{"ttime":[5000]}}

    2 回复  |  直到 9 年前
        1
  •  3
  •   CodeSmith    9 年前
    var arr = $.hits.hits;
    

    将为您提供包含2个您想要的对象的阵列。

    var o1 = arr[0];
    var o2 = arr[1];
    

    var json1 = JSON.stringify(arr[0]);
    var json2 = JSON.stringify(arr[1]);
    

    将按要求提供2个JSON文件。 这是你需要的吗?

        2
  •  1
  •   user7379562    9 年前

    website 正确答案是 $.hits.hits[*] .

    $.hits.hits