public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var dataResult = value as DataResult; #region 序列化DataResult对象 writer.WriteStartObject(); // 写total属性 writer.WritePropertyName("total"); serializer.Serialize(writer, dataResult.Total); // 写pagecount属性 writer.WritePropertyName("pagecount"); serializer.Serialize(writer, dataResult.PageCount); // 写pageindex属性 writer.WritePropertyName("pageindex"); serializer.Serialize(writer, dataResult.PageIndex); // 写rows属性 var converter = new DataTableConverter(); writer.WritePropertyName("rows"); converter.WriteJson(writer, dataResult.Data, serializer); writer.WriteEndObject(); #endregion }
public void SerializeValues() { DataTable dt = new DataTable(); Dictionary <Type, object> types = new Dictionary <Type, object> { [typeof(TimeSpan)] = TimeSpan.Zero, [typeof(char[])] = new char[] { 'a', 'b', 'c' }, [typeof(Type)] = typeof(string), [typeof(Object)] = new object(), [typeof(byte[])] = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }, [typeof(Uri)] = new Uri("http://localhost"), [typeof(Guid)] = new Guid(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), [typeof(BigInteger)] = BigInteger.Parse("10000000000000000000000000000000000") }; foreach (var ss in types) { dt.Columns.Add(ss.Key.Name, ss.Key); } dt.Rows.Add(types.Select(t => t.Value).ToArray()); StringWriter sw = new StringWriter(); JsonTextWriter jsonWriter = new JsonTextWriter(sw); jsonWriter.Formatting = Formatting.Indented; DataTableConverter converter = new DataTableConverter(); converter.WriteJson(jsonWriter, dt, new JsonSerializer()); string stringName = typeof(string).AssemblyQualifiedName; StringAssert.AreEqual( @"[ { ""TimeSpan"": ""00:00:00"", ""Char[]"": [ ""a"", ""b"", ""c"" ], ""Type"": """ + stringName + @""", ""Object"": {}, ""Byte[]"": ""AQIDBAUGBwg="", ""Uri"": ""http://localhost"", ""Guid"": ""00000001-0002-0003-0405-060708090a0b"", ""BigInteger"": 10000000000000000000000000000000000 } ]", sw.ToString() ); }
public void WriteJsonNull() { StringWriter sw = new StringWriter(); JsonTextWriter jsonWriter = new JsonTextWriter(sw); DataTableConverter converter = new DataTableConverter(); converter.WriteJson(jsonWriter, null, null); StringAssert.AreEqual(@"null", sw.ToString()); }
public void SerializeNullValues() { DataTable dt = new DataTable(); List <Type> types = new List <Type> { typeof(TimeSpan), typeof(char[]), typeof(Type), typeof(Object), typeof(byte[]), typeof(Uri), typeof(Guid), typeof(BigInteger) }; foreach (var ss in types) { dt.Columns.Add(ss.Name, ss); } dt.Rows.Add(types.Select(t => (object)null).ToArray()); StringWriter sw = new StringWriter(); JsonTextWriter jsonWriter = new JsonTextWriter(sw); jsonWriter.Formatting = Formatting.Indented; DataTableConverter converter = new DataTableConverter(); converter.WriteJson(jsonWriter, dt, new JsonSerializer()); StringAssert.AreEqual( @"[ { ""TimeSpan"": null, ""Char[]"": null, ""Type"": null, ""Object"": null, ""Byte[]"": null, ""Uri"": null, ""Guid"": null, ""BigInteger"": null } ]", sw.ToString() ); }
/// <summary> /// Writes the JSON representation of the object. /// </summary> /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param> /// <param name="value">The value.</param> /// <param name="serializer">The calling serializer.</param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { DataSet dataSet = (DataSet)value; DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver; DataTableConverter converter = new DataTableConverter(); writer.WriteStartObject(); foreach (DataTable table in dataSet.Tables) { writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(table.TableName) : table.TableName); converter.WriteJson(writer, table, serializer); } writer.WriteEndObject(); }
/// <summary> /// Writes the JSON representation of the object. /// </summary> /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param> /// <param name="value">The value.</param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { DataSet dataSet = value as DataSet; DataTableConverter converter = new DataTableConverter(this.replaceColumnNameWithDefaultNameProperty); writer.WriteStartObject(); writer.WritePropertyName("Tables"); writer.WriteStartArray(); foreach (DataTable table in dataSet.Tables) { converter.WriteJson(writer, table, serializer); } writer.WriteEndArray(); writer.WriteEndObject(); }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object dataset, Newtonsoft.Json.JsonSerializer serializer) { System.Data.DataSet dataSet = dataset as System.Data.DataSet; DataTableConverter converter = new DataTableConverter(); writer.WriteStartObject(); writer.WritePropertyName("Tables"); writer.WriteStartArray(); foreach (System.Data.DataTable table in dataSet.Tables) { converter.WriteJson(writer, table, serializer); } writer.WriteEndArray(); writer.WriteEndObject(); converter = null; }