我用String编写了JSON。 Notepad ++中的长度显示为210个字符,而C +++中的长度仅为182个字符。

如何在C ++中获得210个字符?

带有Escape引号的JSON示例:

{\"_id\":\"5de2dff0d6c9e312d659bc42\",\"index\":\"0\",\"guid\":\"eba0e936-0b18-48ec-88ca-00312ede4a7d\",\"isActive\":\"false\",\"balance\":\"$1,636.50\",\"picture\":\"http://placehold.it/32x32\",\"age\":\"36\"} 

而我的代码:

#include <iostream>  using namespace std;  int main() {     //210 characters     string str = "{\"_id\":\"5de2dff0d6c9e312d659bc42\",\"index\":\"0\",\"guid\":\"eba0e936-0b18-48ec-88ca-00312ede4a7d\",\"isActive\":\"false\",\"balance\":\"$1,636.50\",\"picture\":\"http://placehold.it/32x32\",\"age\":\"36\"}";     cout << "String Length = " << str.length(); // return 182     return 0; } 

===============>>#1 票数:1 已采纳

每个\\"最终不是两个不同的字符,而只是一个"字符 ,这就是为什么字符数似乎不正确的原因。 原因是字符串字面量中的双引号需要转义

您可以使用原始字符串文字来保存该字符串,因为每个\\都将被当作其中的文字反斜杠字符,因此每个\\"都将意味着反斜杠+双引号:

#include <iostream>  using namespace std;  int main() {     string str = R"({\"_id\":\"5de2dff0d6c9e312d659bc42\",\"index\":\"0\",\"guid\":\"eba0e936-0b18-48ec-88ca-00312ede4a7d\",\"isActive\":\"false\",\"balance\":\"$1,636.50\",\"picture\":\"http://placehold.it/32x32\",\"age\":\"36\"})";     cout << "String Length = " << str.length();     return 0; } 

输出:

 String Length = 210 

  ask by Leon M translate from so

本文未有回复,本站智能推荐: