当键是字符串时如何修改嵌套的plist
How to modify a nested plist when keys are strings
("person"
("child-1"
("grandchild-1a" "grandchild-1a-value"
"grandchild-1b" "grandchild-1b-value")
"child-2"
("grandchild-2a" "grandchild-2a-value"
"grandchild-2b" "grandchild-2b-value")))
如何将"grandchild-1b-value"
修改为"grandchild-1b-value-modified"
?键是字符串。
或者我怎样才能创建一个新的 var,它是除了新值之外等效的嵌套 plist?
以下是我最终得到 plist 的方式。我将 drakma 请求的响应提供给 yason:parse
:
(let ((stream (drakma:http-request endpoint
:method :post
:want-stream t
:content-type "application/json"
:content request)))
(setf (flexi-streams:flexi-stream-external-format stream) :utf-8)
(let ((response (yason:parse stream :object-as :plist)))
***HERE***))
CL-USER 346 > (pprint
(subst "grandchild-1b-value-modified"
"grandchild-1b-value"
'("person"
("child-1"
("grandchild-1a" "grandchild-1a-value"
"grandchild-1b" "grandchild-1b-value")
"child-2"
("grandchild-2a" "grandchild-2a-value"
"grandchild-2b" "grandchild-2b-value")))
:test #'equal))
("person"
("child-1"
("grandchild-1a"
"grandchild-1a-value"
"grandchild-1b"
"grandchild-1b-value-modified")
"child-2"
("grandchild-2a"
"grandchild-2a-value"
"grandchild-2b"
"grandchild-2b-value")))
("person"
("child-1"
("grandchild-1a" "grandchild-1a-value"
"grandchild-1b" "grandchild-1b-value")
"child-2"
("grandchild-2a" "grandchild-2a-value"
"grandchild-2b" "grandchild-2b-value")))
如何将"grandchild-1b-value"
修改为"grandchild-1b-value-modified"
?键是字符串。
或者我怎样才能创建一个新的 var,它是除了新值之外等效的嵌套 plist?
以下是我最终得到 plist 的方式。我将 drakma 请求的响应提供给 yason:parse
:
(let ((stream (drakma:http-request endpoint
:method :post
:want-stream t
:content-type "application/json"
:content request)))
(setf (flexi-streams:flexi-stream-external-format stream) :utf-8)
(let ((response (yason:parse stream :object-as :plist)))
***HERE***))
CL-USER 346 > (pprint
(subst "grandchild-1b-value-modified"
"grandchild-1b-value"
'("person"
("child-1"
("grandchild-1a" "grandchild-1a-value"
"grandchild-1b" "grandchild-1b-value")
"child-2"
("grandchild-2a" "grandchild-2a-value"
"grandchild-2b" "grandchild-2b-value")))
:test #'equal))
("person"
("child-1"
("grandchild-1a"
"grandchild-1a-value"
"grandchild-1b"
"grandchild-1b-value-modified")
"child-2"
("grandchild-2a"
"grandchild-2a-value"
"grandchild-2b"
"grandchild-2b-value")))