1、生成一个json数据格式文件,数据格式正确性可在线检验json数据格式。JsonTextWriter 是生成json数据节点的类,用法是 : StringWriter sw = new StringWriter(); JsonTextWriter writer = new JsonTextWriter(sw); writer.WriteStartObject(); // { (Json数据的大括号左边 )
2、 继续添加键值:wen writer.WritePropertyName("wen"); writer.WriteStartArray();// [ (Json数据的大括号左边) writer.WriteStartObject();// { writer.WritePropertyName("ahref"); writer.WriteValue("1"); writer.WritePropertyName("imgpath"); writer.WriteValue("2"); writer.WritePropertyName("duanluo"); writer.WriteValue("3"); writer.WriteEndObject();//} writer.WriteStartObject();//{ writer.WritePropertyName("ahref"); writer.WriteValue("1"); writer.WritePropertyName("imgpath"); writer.WriteValue("2"); writer.WritePropertyName("duanluo"); writer.WriteValue("3"); writer.WriteEndObject();// } (一组json数据结束标记) writer.WriteStartObject();//{ writer.WritePropertyName("ahref"); writer.WriteValue("1"); writer.WritePropertyName("imgpath"); writer.WriteValue("2"); writer.WritePropertyName("duanluo"); writer.WriteValue("3"); writer.WriteEndObject();// }(一组json数据结束标记) writer.WriteEndArray();// ] (多组json数据结束标记) writer.WritePropertyName("img"); writer.WriteStartObject();//{ writer.WritePropertyName("ig1"); writer.WriteValue("3"); writer.WritePropertyName("ig2"); writer.WriteValue("3"); writer.WritePropertyName("ig3"); writer.WriteValue("3"); writer.WritePropertyName("ig4"); writer.WriteValue("3"); writer.WriteEndObject();//} writer.WriteEndObject();//}
3、 json数据添加完成后,用StreamWrite 将StringWriter 写入到文件中。 StreamWriter wtyeu = new StreamWriter(xmlpaths); wtyeu.Write(sw); wtyeu.Flush(); wtyeu.Close();
4、读写 JSON数据,更新某个键的值。 StreamReader file = new StreamReader(xmlpaths); JsonTextReader reader = new JsonTextReader(file); JObject obj = (JObject)JToken.ReadFrom(reader); JToken token = obj["wen"]; foreach (JObject e in token) { e["ahref"] = "ahref"; e["imgpath"] = "img"; e["duanluo"] = "pppppp"; } reader.Close();//第一种写法 StringWriter sw = new StringWriter(); JsonTextWriter writer = new JsonTextWriter(sw); obj.WriteTo(writer); //将根节点写入到StringWriter,这样生成的数 据没有空行。 writer.Flush(); StreamWriter wtyeu = new StreamWriter(xmlpaths); wtyeu.Write(sw.ToString()); wtyeu.Flush(); wtyeu.Close(); writer.Close(); sw.Close();//第二种写法 StreamWriter wtyeu = new StreamWriter(xmlpaths); wtyeu.Write(obj.ToString()); //将JToken.ReadFrom(reader)的数据写入文件,这样的数据有空行。 wtyeu.Flush(); wtyeu.Close(); writer.Close(); sw.Close();