Lines Matching defs:json
51 JsonFlattenParser::JsonFlattenParser(const std::string& json)
54 Parse(json);
57 void JsonFlattenParser::Parse(const std::string& json)
61 while (curPos < json.length()) {
62 if (charFilter[static_cast<uint8_t>(json[curPos])] != STRING_FLAG) {
66 std::string key = ParseKey(json);
67 std::string val = ParseValue(json);
74 std::string json = "{";
77 json += (handler(kvList[i]) + ",");
79 json += handler(kvList.back());
81 json += "}";
82 return json;
85 std::string JsonFlattenParser::ParseKey(const std::string& json)
89 while (curPos < json.length()) {
90 if (charFilter[static_cast<uint8_t>(json[curPos])] == STRING_FLAG) {
93 key.push_back(json[curPos]);
100 std::string JsonFlattenParser::ParseValue(const std::string& json)
104 while (curPos < json.length()) {
105 int charCode = static_cast<uint8_t>(json[curPos]);
108 value = ParseBrackets(json, json[curPos]);
112 value = ParseNumer(json);
116 value = ParseString(json);
131 std::string JsonFlattenParser::ParseNumer(const std::string& json)
134 while (curPos < json.length()) {
135 if (charFilter[static_cast<uint8_t>(json[curPos])] != NUMBER_FLAG) {
138 number.push_back(json[curPos]);
144 std::string JsonFlattenParser::ParseString(const std::string& json)
147 txt.push_back(json[curPos++]);
148 while (curPos < json.length()) {
149 if (charFilter[static_cast<uint8_t>(json[curPos])] == STRING_FLAG &&
150 json[curPos - 1] != '\\') {
153 txt.push_back(json[curPos]);
156 txt.push_back(json[curPos++]);
160 std::string JsonFlattenParser::ParseBrackets(const std::string& json, char leftBracket)
165 val.push_back(json[curPos++]);
166 while (curPos < json.length()) {
167 if (json[curPos] == leftBracket) {
169 } else if (json[curPos] == rightBracket) {
175 val.push_back(json[curPos++]);
177 val.push_back(json[curPos++]);