123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using PetaJson;
- using System.Globalization;
- using System.Runtime.Serialization.Json;
- using System.IO;
- using System.Runtime.Serialization;
- namespace EmitDev
- {
- [Json]
- class Stuff
- {
- public string Name;
- public string Address;
- }
- [Json]
- struct Person : IJsonWriting, IJsonWritten
- {
- public string StringField;
- public int IntField;
- public double DoubleField;
- public bool BoolField;
- public char CharField;
- public DateTime DateTimeField;
- public byte[] BlobField;
- public List<Stuff> StuffsField;
- public string StringProp { get; set; }
- public int IntProp { get; set; }
- public double DoubleProp { get; set; }
- public bool BoolProp { get; set; }
- public char CharProp { get; set; }
- public DateTime DateTimeProp { get; set; }
- public byte[] BlobProp { get; set; }
- public List<Stuff> StuffsProp { get; set; }
- public int? NullableField1;
- public int? NullableField2;
- public int? NullableProp1;
- public int? NullableProp2;
- void IJsonWritten.OnJsonWritten(IJsonWriter w)
- {
- w.WriteRaw("/* OnJsonWritten */ ");
- }
- void IJsonWriting.OnJsonWriting(IJsonWriter w)
- {
- w.WriteRaw("/* OnJsonWriting */");
- }
- }
- [DataContract]
- class DCTest
- {
- [DataMember(Name="AAA")] public string ZZZ;
- [DataMember] private int priv;
- [DataMember] public string Prop { get; set; }
- [DataMember] public string Field;
- }
- class Program
- {
- static void Main(string[] args)
- {
- Json.WriteWhitespaceDefault = false;
- var dc = new DCTest() { Prop = "Hi", Field = "Bye" };
- var ser = new DataContractJsonSerializer(typeof(DCTest));
- var memStream = new MemoryStream();
- ser.WriteObject(memStream, dc);
- var str = Encoding.UTF8.GetString(memStream.GetBuffer());
- Console.WriteLine(str);
- Console.WriteLine(Json.Format(dc));
- return;
- var p = new Person()
- {
- StringField = "Hello World",
- IntField = 23,
- DoubleField = 99.99,
- BoolField = false,
- CharField = 'X',
- DateTimeField = DateTime.Now,
- BlobField = new byte[] { 1, 2, 3, 4},
- StuffsField = new List<Stuff>() { new Stuff() { Name="Brad", Address="Home" } },
- StringProp = "Hello World",
- IntProp = 23,
- DoubleProp = 99.99,
- BoolProp = false,
- CharProp = 'X',
- DateTimeProp = DateTime.Now,
- BlobProp = new byte[] { 1, 2, 3, 4},
- StuffsProp = new List<Stuff>() { new Stuff() { Name="Brad", Address="Home" } },
- NullableField1 = null,
- NullableField2 = 23,
- NullableProp1 = null,
- NullableProp2 = 23,
- };
- var json = Json.Format(p);
- Console.WriteLine(json);
- var p2 = Json.Parse<Person>(json);
- Console.WriteLine();
- Console.WriteLine();
- var json2 = Json.Format(p2);
- Console.WriteLine(json2);
- }
- }
- }
|