IBM Watson ConversationでコンテキストのJSONを操作したいとき
会話の最中に以下のコンテキストを保持していたとして
{
"context": {
...
"complex_object": {
"user_firstname" : "Paul",
"user_lastname" : "Pan"
"has_card" : false
}
}
}
ノードからこのようなコンテキストのアップデートをかけられたとします
{
"complex_object": {
"user_firstname": "Peter",
"has_card": true
}
}
すると結果は
{
"complex_object": {
"user_firstname": "Peter",
"user_lastname": "Pan",
"has_card": true
}
}
過去に持っていた値を保持しつつ、アップデートで該当する値は上書きされます
配列への値の追加
このtoppings_arrayという配列に値を追加したい場合
{
"context": {
"toppings_array": ["onion", "olives"]
}
}
このようなメソッドが使えます
{
"context": {
"toppings_array": "<? $toppings_array.append('ketchup', 'tomatoes') ?>"
}
}
contextに含まれるtoppings_arrayを$toppings_arrayというリストオブジェクトとして扱っています
そこからappendメソッドを呼び出しています
その結果
{
"context": {
"toppings_array": ["onion", "olives", "ketchup", "tomatoes"]
}
}
このようになります
配列から値を削除
remove(key)かremoveValue(value)で行えます
{
"context": {
"toppings_array": "<? $toppings_array.remove(0) ?>"
}
}
{
"context": {
"toppings_array": "<? $toppings_array.removeValue('onion') ?>"
}
}
結果はどちらも
{
"context": {
"toppings_array": ["olives", "ketchup", "tomatoes"]
}
}
このようになります
Author And Source
この問題について(IBM Watson ConversationでコンテキストのJSONを操作したいとき), 我々は、より多くの情報をここで見つけました https://qiita.com/hermannsw/items/270924ffe84594a53a55著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .