Example #1
0
 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);
         }
     }
 }