首页 > 解决方案 > 如何在 laravel 中使用多级 json 进行查询

问题描述

我想做一个搜索功能来搜索 json 中的一些数据。

json是这样的:

{"type1":{
        "pd1":{
             "price":"110","detail":{
                          "QAQ":{"a":"0","b":"0","c":"0","d":"0"}},
                          "TATTT":{"QwQ":"0","TwT":"0","QAQ":"0","TAT":"0"}}},
"type2":{
        "pd2":{"price":"50","detail":{"d1":{"w1":0,"w2":0}}},
        "pd3":{"price":"10","detail":{}}}}

例子:

搜索(“110”)

我希望得到

{"type1":{"pd1":{"price":"110","detail":{
"QAQ":{"a":"0","b":"0","c":"0","d":"0"},
"TATTT":{"QwQ":"0","TwT":"0","QAQ":"0","TAT":"0"}}}}

搜索(“pd3”)

得到

{"type2":{"pd3":{"price":"10","detail":{}}}}

接着

搜索(“w”)

得到

{"type1":{"pd1":{"price":"110","detail":{"QAQ":{"a":"0","b":"0","c":"0","d":"0"},"TATTT":{"QwQ":"0","TwT":"0","QAQ":"0","TAT":"0"}}},
"type2":{"pd2":{"price":"50","detail":{"d1":{"w1":0,"w2":0}}}}}

尝试使用 Jsonq,但没有成功

$jsonq = new Jsonq();
    $jsonq->json($json_data);
    $res = $jsonq->where("price",'=',"110")
    ->get();
dump($res);
#retuen only []

也许Jsonq只能搜索一级。

我不知道如何在 stackoverflow 上使 json 整洁 QAQ

标签: phpjsonlaravellaravel-5jsonq

解决方案


推荐阅读