0

给定的字符串格式如下:

"{"success":"yes","error":"","message":"","arguments":"[{\"assetId\":\"7384\",\"assetSerialNo\":\"Base Map\",\"assetDescription\":\"\",\"assetVersion\":\"\",\"assetIsMovable\":\"f\",\"assetType\":\"Layer\",\"assetModel\":\"Tile\",\"parentId\":\"7362\",\"assetIsTrackable\":\"f\",\"assetInheritsRegion\":\"f\",\"assetRegion\":\"\",\"typeId\":\"15\"}]"}"

数组中的对象,并且该数组在对象中。但是当我解析这个字符串时:

包含 document.h

文档对象;obj.Parse<0>(json);

它给出了一个错误:

document.h:1718:22: 注意:模板 rapidjson::GenericDocument& rapidjson::GenericDocument::Parse(const Ch*) [with unsigned int parseFlags = parseFlags, SourceEncoding = SourceEncoding, Encoding = rapidjson::UTF8<>, Allocator = rapidjson::MemoryPoolAllocator<>, StackAllocator = rapidjson::CrtAllocator, rapidjson::GenericDocument = rapidjson::GenericDocument >, rapidjson::GenericDocument::Ch = char] document.h:1729:22: 注意:模板 rapidjson::GenericDocument& rapidjson::GenericDocument::Parse(const Ch*) [with unsigned int parseFlags = parseFlags, Encoding = rapidjson::UTF8<>, Allocator = rapidjson::MemoryPoolAllocator<>, StackAllocator = rapidjson::CrtAllocator, rapidjson::GenericDocument = rapidjson::GenericDocument >, rapidjson::GenericDocument::Ch = char]

我如何 json 解码该格式并检索assetId。主对象在字符串周围没有 \"\" 因为这种格式是从 api 返回的?

4

1 回答 1

0

根据https://jsonlint.com/一个有效的 JSON 会更像这样:

"{"success":"yes","error":"","message":"","arguments":" [{"assetId":"7384","assetSerialNo":"Base Map","assetDescription ":"","assetVersion":"","assetIsMovable":"f","assetType":"Layer","assetModel":"Tile","parentId":"7362","assetIsTrackable":"f ","assetInheritsRegion":"f","assetRegion":"","typeId":"15"}]}"

于 2021-02-12T22:58:17.383 回答