【解決方法】JSON でクエリを実行する方法


[*]

const user = [
{
    "userid" : "1",
    "emailid" : "xyz@gmail.com",
    "password" : "xyz123",
    "cards" : [
        {
            "parentUId" : "1",
            "cardId" : "1A",
            "cardTitle" : "Buy Vegetables",
            "tasks" : [{
                "parentCId" : "1A",
                "taskId" : "1A1",
                "taskTitle" : "Tomato",
                "isCompleted" : false
            }, {
                "parentCId" : "1A",
                "taskId" : "1A2",
                "taskTitle" : "Onion",
                "isCompleted" : false
            }]
        },
        {
            "parentUId" : "1",
            "cardId" : "1B",
            "cardTitle" : "Buy Fruits",
            "tasks" : [{
                "parentCId" : "1B",
                "taskId" : "1B1",
                "taskTitle" : "Mango",
                "isCompleted" : false
            }, {
                "parentCId" : "1B",
                "taskId" : "1B2",
                "taskTitle" : "Apple",
                "isCompleted" : false
            }]
        }
    ]
},
{
    "userid" : "2",
    "emailid" : "abc@gmail.com",
    "password" : "abc123",
    "cards" : [
        {
            "parentUId" : "1",
            "cardId" : "2A",
            "cardTitle" : "Buy Vegetables",
            "tasks" : [{
                "parentCId" : "2A",
                "taskId" : "2A1",
                "taskTitle" : "Tomato",
                "isCompleted" : false
            }, {
                "parentCId" : "2A",
                "taskId" : "2A2",
                "taskTitle" : "Onion",
                "isCompleted" : false
            }]
        }
    ]
}
]

let uid = "2"
let cdTitle = "Buy Vegetables"


console.log(user[userid = uid].cards[cardTitle = cdTitle].tasks)

[*][*]私が試したこと:[*][*]

エラー表示中です。[*]
json でクエリを実行する方法。[*]
良い例と演習をいただければ幸いです

[*]

解決策 1

[*]

おそらく、JSON を Javascript オブジェクトに変換する必要があります。 見る JavaScript JSON[^].

[*]

解決策 2

[*]

JSON データへの簡単なクエリをサポートする既存のライブラリを使用することもお勧めします。 [*][*]

それらのカップル:[*]NPM 。 json-クエリ[^][*]単純なクエリ · JSONata[^][*][*]

上記の両方の URL には、使用法を理解するのに役立つドキュメント/例があります。 [*][*][*]

JSON-Query を使用した場合の例は次のとおりです。[*]

クエリは、コンテキスト オブジェクトから抽出または操作するオブジェクトまたは値を記述する文字列です。 シンタックスは CSS と JS に少し似ていますが、非常に強力です。[*]
プロパティへのアクセス (ドット表記)[*][*]

人名[*]
配列アクセサー[*][*]

人[0][*]

アレイプラック[*][*]

people.name => 人の名前をすべて返す[*]
ルックアップのすべての値を取得する[*][*]

見上げる[*][*]

配列フィルター[*][*]

デフォルトでは、最初に一致したアイテムのみが返されます。[*][*]

人[name=Matt][*][*]

しかし、アスタリスクを追加すると[*][*]

、一致するすべてのアイテムが返されます:[*country=NZ][*][*]

人[*][*]

比較演算子を使用できます。[*rating>=3][*][*]

人[*][*]

またはブール論理を使用します。[* rating >= 3 & starred = true][*][*]

人[*][*]

options.enableRegexp が有効になっている場合は、~ 演算子を使用して RegExp に一致させることができます。[*name~/^R/i][*][*]

人[*][*]

! を追加して、上記の例を否定することもできます。 = または ~ の前:[*country!=NZ][*]

人[*][*]

または構文[*]

[*]

コメント

タイトルとURLをコピーしました