我现在只使用 jsonCPP 库几个月了。我试图在数组中添加和删除一个对象。我在不同平台上使用了许多不同的 JSON 库,但我发现使用 JsonCPP 非常困难。
这是Json:
{ "type": "Disc",
"media": "DVD",
"adapter": "DVDCodecs",
"transportControls" : [
{"Action":"Left", "ActionCode" : "1a"},
{"Action":"Right", "ActionCode" : "2a"},
{"Action":"Up", "ActionCode" : "1b"},
{"Action":"Down", "ActionCode" : "4c"},
{"Action":"Center", "ActionCode" : "5e"},
{"Action":"OK", "ActionCode" : "5a"},
{"Action":"SubTitles", "ActionCode" : "3b"},
{"Action":"SubTitlesLang", "ActionCode" : "7d"},
{"Action":"Audio", "ActionCode" : "7a"},
{"Action":"Angle", "ActionCode" : "6a"},
{"Action":"Next", "ActionCode" : "6c"},
{"Action":"Previous", "ActionCode" : "8b"},
{"Action":"DVDMenu", "ActionCode" : "8c"},
{"Action":"Search", "ActionCode" : "8d"},
{"Action":"Region", "ActionCode" : "3a"},
{"Action":"Display", "ActionCode" : "2e"},
{"Action":"RootMenu", "ActionCode" : "6b"},
{"Action":"FastForward", "ActionCode" : "81"},
{"Action":"Rewind", "ActionCode" : "8b"},
{"Action":"FrameForward", "ActionCode" : "8c"},
{"Action":"Parking"},
{"Action":"Seekable"}
]
}
我一直在尝试在 transportControls 数组中添加和删除 objectValue。要添加一个对象,我一直在这样做:
Json::Value addObj;
Json::Reader reader;
reader.parse("{\"Action\":\"BlueButton\", \"ActionCode\" : \"9a\"}", addObj );
root["transportControls"].append( addObj );
这似乎运作良好。如果有更优雅的方式来做到这一点,我想知道。
我的问题是添加后如何删除它。我可以删除对象中的所有成员,但这实际上似乎并没有从 arrayValue 映射中删除对象。
使用 JsonCPP 从数组值中删除对象值的“最佳实践”方法是什么?