public void Example() { #region Usage JTokenWriter writer = new JTokenWriter(); writer.WriteStartObject(); writer.WritePropertyName("name1"); writer.WriteValue("value1"); writer.WritePropertyName("name2"); writer.WriteStartArray(); writer.WriteValue(1); writer.WriteValue(2); writer.WriteEndArray(); writer.WriteEndObject(); JObject o = (JObject)writer.Token; Console.WriteLine(o.ToString()); // { // "name1": "value1", // "name2": [ // 1, // 2 // ] // } #endregion }
public void ValueFormatting() { byte[] data = Encoding.UTF8.GetBytes("Hello world."); JToken root; using (JTokenWriter jsonWriter = new JTokenWriter()) { jsonWriter.WriteStartArray(); jsonWriter.WriteValue('@'); jsonWriter.WriteValue("\r\n\t\f\b?{\\r\\n\"\'"); jsonWriter.WriteValue(true); jsonWriter.WriteValue(10); jsonWriter.WriteValue(10.99); jsonWriter.WriteValue(0.99); jsonWriter.WriteValue(0.000000000000000001d); jsonWriter.WriteValue(0.000000000000000001m); jsonWriter.WriteValue((string)null); jsonWriter.WriteValue("This is a string."); jsonWriter.WriteNull(); jsonWriter.WriteUndefined(); jsonWriter.WriteValue(data); jsonWriter.WriteEndArray(); root = jsonWriter.Token; } Assert.IsType(typeof(JArray), root); Assert.Equal(13, root.Children().Count()); Assert.Equal("@", (string)root[0]); Assert.Equal("\r\n\t\f\b?{\\r\\n\"\'", (string)root[1]); Assert.Equal(true, (bool)root[2]); Assert.Equal(10, (int)root[3]); Assert.Equal(10.99, (double)root[4]); Assert.Equal(0.99, (double)root[5]); Assert.Equal(0.000000000000000001d, (double)root[6]); Assert.Equal(0.000000000000000001m, (decimal)root[7]); Assert.Equal(null, (string)root[8]); Assert.Equal("This is a string.", (string)root[9]); Assert.Equal(null, ((JValue)root[10]).Value); Assert.Equal(null, ((JValue)root[11]).Value); Assert.Equal(data, (byte[])root[12]); }
public void WriteRawValue() { JTokenWriter writer = new JTokenWriter(); writer.WriteStartArray(); writer.WriteRawValue("fail"); writer.WriteRawValue("fail"); writer.WriteEndArray(); StringAssert.Equal(@"[ fail, fail ]", writer.Token.ToString()); }
public void WriteRaw() { JTokenWriter writer = new JTokenWriter(); writer.WriteStartArray(); writer.WriteRaw("fail"); writer.WriteRaw("fail"); writer.WriteEndArray(); // this is a bug. write raw shouldn't be autocompleting like this // hard to fix without introducing Raw and RawValue token types // meh StringAssert.Equal(@"[ fail, fail ]", writer.Token.ToString()); }
public void WriteBigInteger() { JTokenWriter writer = new JTokenWriter(); writer.WriteStartArray(); writer.WriteValue(new BigInteger(123)); writer.WriteEndArray(); JValue i = (JValue)writer.Token[0]; Assert.Equal(new BigInteger(123), i.Value); Assert.Equal(JTokenType.Integer, i.Type); StringAssert.Equal(@"[ 123 ]", writer.Token.ToString()); }
public void WriteComment() { JTokenWriter writer = new JTokenWriter(); writer.WriteStartArray(); writer.WriteComment("fail"); writer.WriteEndArray(); StringAssert.Equal(@"[ /*fail*/]", writer.Token.ToString()); }
public void State() { using (JsonWriter jsonWriter = new JTokenWriter()) { Assert.Equal(WriteState.Start, jsonWriter.WriteState); jsonWriter.WriteStartObject(); Assert.Equal(WriteState.Object, jsonWriter.WriteState); jsonWriter.WritePropertyName("CPU"); Assert.Equal(WriteState.Property, jsonWriter.WriteState); jsonWriter.WriteValue("Intel"); Assert.Equal(WriteState.Object, jsonWriter.WriteState); jsonWriter.WritePropertyName("Drives"); Assert.Equal(WriteState.Property, jsonWriter.WriteState); jsonWriter.WriteStartArray(); Assert.Equal(WriteState.Array, jsonWriter.WriteState); jsonWriter.WriteValue("DVD read/writer"); Assert.Equal(WriteState.Array, jsonWriter.WriteState); #if NET40 jsonWriter.WriteValue(new BigInteger(123)); Assert.Equal(WriteState.Array, jsonWriter.WriteState); #endif jsonWriter.WriteValue(new byte[0]); Assert.Equal(WriteState.Array, jsonWriter.WriteState); jsonWriter.WriteEnd(); Assert.Equal(WriteState.Object, jsonWriter.WriteState); jsonWriter.WriteEndObject(); Assert.Equal(WriteState.Start, jsonWriter.WriteState); } }