C++/RapidJSON:从用于解析的JSON字符串中删除unicode Python前缀
C++/RapidJSON: Removing unicode Python prefix from JSON string for parsing
我有一个Python web API,它返回一个带有"u"前缀的JSON,而不是标准的双引号。
我希望能够使用RapidJSON文档在C++中解析它。Parse(字符串)函数,但是Python格式阻止RapidJSON将其验证为正确的JSON。
正确格式化JSON并删除前缀以使用RapidJSON进行解析的最佳方法是什么?
以下是我想要使用RapidJSON解析的字符串,但是IsObject()断言失败(假设RapidJSON无法解析Python格式的unicode JSON字符串)。
{u'artist': u'Death Grips', u'track': u'Hunger Games', u'import_date': datetime.datetime(2015, 12, 1, 4, 6, 23), u'track_id': u'TRUCCPM1515BB84DDF-0', u'codever': u'4.12', u'length': 159, u'score': 4.8918204, u'source': u'local', u'release': u'No Love Deep Web'}
谢谢!
编辑:
事实证明,我的响应不是JSON,而是dict上的Python dict.JSON.dumps由于不受支持的类型(datetime.datetime)而失败。我使用删除了有问题的条目
del response.metadata[u'import_date'];
然后执行json.dumps(response.metadata)
工作正常,并返回一个JSON。
这仍然不是一个有效的JSON。您可以使用http://jsonlint.com/或类似的工具来验证JSON。RapidJSON只能处理符合RFC7159/ECMA-404的JSON。
相关文章:
- 有没有办法让编译器在我放置字符串而不是 nlohmann::json 对象时抛出错误?
- 使用 jsoncpp 解析 json 数组字符串
- 如何在 c++ 非托管代码中反序列化 byte[] 的 json 字符串?
- 使用 minijson-reader 库读取 JSON 字符串时出现问题
- POCO C++对象到 JSON 字符串序列化
- 将可变参数模板参数转换为 JSON 字符串
- 构造一个类似于JSON文件c++的字符串
- 从 json 字符串将 QVariant 转换为 QList<MyClass>
- C++中的 Json:将数字解析为字符串以避免浮点不准确
- 使用 Json 转换器反序列化 WCF 服务中的C++字符串
- 如何使用 boost 属性树来解析 boost 中 json 字符串中的数组中的元素?
- Boost.Hana JSON 示例:字符串和 decltype(std::to_string(..))之间的区别
- 我想将字符串转换为 Json 格式并返回字符串向量作为答案
- 如何在Visual Studio Code tasks.json中定义C++字符串宏?
- 使用Python将C 结构更改为JSON字符串
- 如何提取由特定模式分开的JSON对象字符串
- 使用RapidJson凝结JSON文件后,如何将输出存储在C 字符串中
- 如何将变量用作原始 JSON 字符串中的数据?
- 当 JSON 值应为 INT 但以字符串类型发送时,RapidJSON 崩溃
- 无法区分 JSON 对象/数组/字符串