如何正确更新json值?这是我尝试过的,但没有运气:
TJSONArray *Data;
Data = (TJSONArray*) TJSONObject::ParseJSONValue(TEncoding::ASCII->GetBytes(json),0);
TJSONObject *obj = (TJSONObject*) Data->Get(0);
TJSONArray *arr = (TJSONArray*) obj->Get("tokens");
arr = (TJSONArray*) TJSONObject::ParseJSONValue(TEncoding::ASCII->GetBytes(arrjson),0);
数据:
[{"source":"aaaa","cluster":"1","tokens":[{},{}]}, {"source":"bbbb","cluster":"2","tokens":[{},{}]}]
不幸的是,TJSONArray
本身并不允许您用新值替换现有元素(为什么?谁知道)。您所能做的就是添加和删除元素以及ENUMERATE元素。
由于您的数组包含TJSONObject
实例,要用新对象替换此类元素,您必须:
TJSONArray
,然后根据需要添加对象,从需要的前一个TJSONArray
复制值。然后你可以获得TJSONPair
字段的tokens
并将新的TJSONArray
设置为JsonValue
。如果这不符合您的喜好,那么请寻找支持您感兴趣的编辑功能的第三方JSON库。