使用开源的类库Newtonsoft.Json,
通常可以使用JObject, JsonReader, JsonWriter处理。这种方式最通用,也最灵活,可以随时修改不爽的地方。
一、使用JsonReader读Json字符串:
1 string jsonText = @"{""input"" : ""value"",""output"" : ""result""}"; 2 JsonReader reader = new JsonTextReader(new StringReader(jsonText)); 3 while (reader.Read()) 4 { 5 Console.WriteLine(reader.TokenType + " " + reader.ValueType + " " + reader.Value); 6 }
二、使用JsonWriter写字符串:
1 StringWriter sw = new StringWriter(); 2 JsonWriter writer = new JsonTextWriter(sw); 3 writer.WriteStartObject(); 4 writer.WritePropertyName("input"); 5 writer.WriteValue("value"); 6 writer.WritePropertyName("output"); 7 writer.WriteValue("result"); 8 writer.WriteEndObject(); 9 writer.Flush(); 10 string jsonText = sw.GetStringBuilder().ToString(); 11 Console.WriteLine(jsonText);
三、使用JObject读写字符串:
1 JObject jo = JObject.Parse(jsonText); 2 string[] values =jo.Properties().Select(item => item.Value.ToString()).ToArray();
四、使用JsonSerializer读写对象(基于JsonWriter与JsonReader):
1 string jsonArrayText1 ="[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]"; 2 JArray ja =(JArray)JsonConvert.DeserializeObject(jsonArrayText1); 3 string ja1a =ja[1]["a"].ToString(); 4 //或者 5 JObject o = (JObject)ja[1]; 6 string oa = o["a"].ToString();