网上大多都是JsonWriter writer = new JsonWriter(sw) 这样VS报无法创建抽象类或接口“Newtonsoft.Json.JsonWriter”的实例
版本Newtonsoft4.5改为以下
StringWriter sw = new StringWriter(); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("myparams"); writer.WriteStartObject(); writer.WritePropertyName("shopid"); writer.WriteValue("cashop"); writer.WritePropertyName("version"); writer.WriteValue("2.0"); writer.WritePropertyName("format"); writer.WriteValue("json"); writer.WritePropertyName("appkey"); writer.WriteValue("123456"); writer.WritePropertyName("secretkey"); writer.WriteValue("1f7c43e50645e814c0d8c47e3a621243"); writer.WritePropertyName("sessionkey"); writer.WriteValue("61019102a237e5d5ea182253c4f44578fb182b212b45837512998550"); writer.WritePropertyName("apiname"); writer.WriteValue("Get.Data"); writer.WritePropertyName("apiparam"); writer.WriteStartObject(); writer.WritePropertyName("date"); writer.WriteValue("time"); writer.WriteEndObject(); writer.WriteEndObject(); writer.WriteEndObject(); writer.Flush(); sw.Close(); } using (JsonReader reader = new JsonTextReader(new StringReader(sw.GetStringBuilder().ToString()))) { while (reader.Read()) { if (reader.Value != null) { String jsonVale = reader.Value + "//" + reader.TokenType + "//" + reader.ValueType; } } }
JsonWriter输出格式为:
{ myparams: { "shopid": "cashop", "version": "2.0", "format": "json", "appkey": "123456", "secretkey": "1f7c43e50645e814c0d8c47e3a621243", "sessionkey": "61019102a237e5d5ea182253c4f44578fb182b212b45837512998550", "apiname": "Get.Sysuser", "apiparam": { date:time } } }