Result ParseArray(ref Context con, ref JsonValue value) { if (string.IsNullOrEmpty(con.json)) { return(Result.EXPECT_VALUE); } if (con.json[con.pos] != '[') { return(Result.INVALID_VALUE); } if (con.json[con.pos + 1] == ']') { con.pos += 2; value.SetType(ValueType.ARRAY); value.ClearArray(); return(Result.PARSE_OK); } con.pos++; while (true) { if (con.json[con.pos] == ',') { con.pos++; } else if (con.json[con.pos] == ']') { con.pos++; value.SetType(ValueType.ARRAY); return(Result.PARSE_OK); } else if (con.json[con.pos] == ' ') { con.pos++; } else { JsonValue temp = new JsonValue(ValueType.NULL); Result res = ParseValue(ref con, ref temp); if (res != Result.PARSE_OK) { return(res); } value.AddArrayElement(temp); } } }