Silverlight 5 WinRT

public class JsonArray public sealed class JsonArray
: JsonValue, IEnumerable, IList`1<JsonValue>, ICollection`1<JsonValue>, IEnumerable`1<JsonValue> : JsonValue, IEnumerable`1<KeyValuePair`2<String, JsonValue>>, IEnumerable, IDynamicMetaObjectProvider, IList`1<JsonValue>, ICollection`1<JsonValue>, IEnumerable`1<JsonValue>
public virtual Int32 Count { get; } public virtual Int32 Count { get; }
public virtual Boolean IsReadOnly { get; } public virtual Boolean IsReadOnly { get; }
public virtual JsonValue Item { get; set; } public virtual JsonValue Item { get; set; }
public virtual JsonType JsonType { get; } public virtual JsonType JsonType { get; }
public virtual void Add(JsonValue item); public virtual void Add(JsonValue item);
public void AddRange(IEnumerable`1<JsonValue> items); public void AddRange(IEnumerable`1<JsonValue> items);
public void AddRange(JsonValue items); public void AddRange(JsonValue items);
public virtual void Clear(); public virtual void Clear();
public virtual Boolean Contains(JsonValue item); public virtual Boolean Contains(JsonValue item);
public virtual void CopyTo(JsonValue array, Int32 arrayIndex); public virtual void CopyTo(JsonValue array, Int32 arrayIndex);
  public virtual IEnumerator`1<JsonValue> GetEnumerator();
  protected virtual IEnumerator`1<KeyValuePair`2<String, JsonValue>> GetKeyValuePairEnumerator();
public virtual Int32 IndexOf(JsonValue item); public virtual Int32 IndexOf(JsonValue item);
public virtual void Insert(Int32 index, JsonValue item); public virtual void Insert(Int32 index, JsonValue item);
public virtual Boolean Remove(JsonValue item); public virtual Boolean Remove(JsonValue item);
public virtual void RemoveAt(Int32 index); public virtual void RemoveAt(Int32 index);
public virtual void Save(Stream stream);  
  public virtual JsonValue ValueOrDefault(Int32 index);
  protected virtual void WriteAttributeString(XmlDictionaryWriter jsonWriter);

public class JsonObject public sealed class JsonObject
: JsonValue, IEnumerable, IDictionary`2<String, JsonValue>, ICollection`1<KeyValuePair`2<String, JsonValue>>, IEnumerable`1<KeyValuePair`2<String, JsonValue>> : JsonValue, IEnumerable`1<KeyValuePair`2<String, JsonValue>>, IEnumerable, IDynamicMetaObjectProvider, IDictionary`2<String, JsonValue>, ICollection`1<KeyValuePair`2<String, JsonValue>>
public virtual Int32 Count { get; } public virtual Int32 Count { get; }
public virtual JsonValue Item { get; set; } public virtual JsonValue Item { get; set; }
public virtual JsonType JsonType { get; } public virtual JsonType JsonType { get; }
public virtual ICollection`1<String> Keys { get; } public virtual ICollection`1<String> Keys { get; }
public virtual ICollection`1<JsonValue> Values { get; } public virtual ICollection`1<JsonValue> Values { get; }
public virtual void Add(String key, JsonValue value); public virtual void Add(String key, JsonValue value);
public virtual void Add(KeyValuePair`2<String, JsonValue> item); public virtual void Add(KeyValuePair`2<String, JsonValue> item);
public void AddRange(IEnumerable`1<KeyValuePair`2<String, JsonValue>> items); public void AddRange(IEnumerable`1<KeyValuePair`2<String, JsonValue>> items);
public void AddRange(KeyValuePair`2 items); public void AddRange(KeyValuePair`2 items);
public virtual void Clear(); public virtual void Clear();
public virtual Boolean ContainsKey(String key); public virtual Boolean ContainsKey(String key);
public virtual void CopyTo(KeyValuePair`2 array, Int32 arrayIndex); public virtual void CopyTo(KeyValuePair`2 array, Int32 arrayIndex);
public virtual IEnumerator`1<KeyValuePair`2<String, JsonValue>> GetEnumerator();  
  protected virtual IEnumerator`1<KeyValuePair`2<String, JsonValue>> GetKeyValuePairEnumerator();
  protected virtual void OnSaveEnded();
  protected virtual void OnSaveStarted();
public virtual Boolean Remove(String key); public virtual Boolean Remove(String key);
public virtual void Save(Stream stream);  
public virtual Boolean TryGetValue(String key, out JsonValue& value); public virtual Boolean TryGetValue(String key, out JsonValue& value);
  public virtual JsonValue ValueOrDefault(String key);
  protected virtual void WriteAttributeString(XmlDictionaryWriter jsonWriter);

public class JsonPrimitive public sealed class JsonPrimitive
: JsonValue, IEnumerable : JsonValue, IEnumerable`1<KeyValuePair`2<String, JsonValue>>, IEnumerable, IDynamicMetaObjectProvider
public virtual JsonType JsonType { get; } public virtual JsonType JsonType { get; }
public virtual void Save(Stream stream);  
  public Object Value { get; }
  public virtual Object ReadAs(Type type);
  static public Boolean TryCreate(Object value, out JsonPrimitive& result);

  public sealed enum JsonSaveOptions
  : IComparable, IFormattable, IConvertible
  { None, EnableIndent }

public sealed enum JsonType public sealed enum JsonType
: IComparable, IFormattable, IConvertible : IComparable, IFormattable, IConvertible
{ String, Number, Object, Array, Boolean } { String, Number, Object, Array, Boolean, Default }

public abstract class JsonValue public class JsonValue
: IEnumerable : IEnumerable`1<KeyValuePair`2<String, JsonValue>>, IEnumerable, IDynamicMetaObjectProvider
  protected Int32 ChangedListenersCount { get; }
  protected Int32 ChangingListenersCount { get; }
public virtual Int32 Count { get; } public virtual Int32 Count { get; }
public virtual JsonValue Item { get; set; } public virtual JsonValue Item { get; set; }
public virtual JsonValue Item { get; set; } public virtual JsonValue Item { get; set; }
public abstract virtual JsonType JsonType { get; } public virtual JsonType JsonType { get; }
  public event EventHandler`1<JsonValueChangeEventArgs> Changed;
  public event EventHandler`1<JsonValueChangeEventArgs> Changing;
  public Object AsDynamic();
  static public T CastValue(JsonValue value);
public virtual Boolean ContainsKey(String key); public virtual Boolean ContainsKey(String key);
  public virtual IEnumerator`1<KeyValuePair`2<String, JsonValue>> GetEnumerator();
  protected virtual IEnumerator`1<KeyValuePair`2<String, JsonValue>> GetKeyValuePairEnumerator();
  public virtual JsonValue GetValue(String key);
  public virtual JsonValue GetValue(Int32 index);
static public JsonValue Load(TextReader textReader); static public JsonValue Load(TextReader textReader);
static public JsonValue Load(Stream stream); static public JsonValue Load(Stream stream);
  protected virtual void OnSaveEnded();
  protected virtual void OnSaveStarted();
  static public String op_Explicit(JsonValue value);
  static public Double op_Explicit(JsonValue value);
  static public Single op_Explicit(JsonValue value);
  static public Decimal op_Explicit(JsonValue value);
  static public Int64 op_Explicit(JsonValue value);
  static public UInt64 op_Explicit(JsonValue value);
  static public Int32 op_Explicit(JsonValue value);
  static public UInt32 op_Explicit(JsonValue value);
  static public Int16 op_Explicit(JsonValue value);
  static public UInt16 op_Explicit(JsonValue value);
  static public SByte op_Explicit(JsonValue value);
  static public Byte op_Explicit(JsonValue value);
  static public Uri op_Explicit(JsonValue value);
  static public Guid op_Explicit(JsonValue value);
  static public DateTime op_Explicit(JsonValue value);
  static public Char op_Explicit(JsonValue value);
  static public Boolean op_Explicit(JsonValue value);
  static public DateTimeOffset op_Explicit(JsonValue value);
static public String op_Implicit(JsonValue value); static public JsonValue op_Implicit(Boolean value);
static public Double op_Implicit(JsonValue value); static public JsonValue op_Implicit(Byte value);
static public Single op_Implicit(JsonValue value); static public JsonValue op_Implicit(Decimal value);
static public Decimal op_Implicit(JsonValue value); static public JsonValue op_Implicit(Double value);
static public Int64 op_Implicit(JsonValue value); static public JsonValue op_Implicit(Int16 value);
static public UInt64 op_Implicit(JsonValue value); static public JsonValue op_Implicit(Int32 value);
static public Int32 op_Implicit(JsonValue value); static public JsonValue op_Implicit(Int64 value);
static public UInt32 op_Implicit(JsonValue value); static public JsonValue op_Implicit(Single value);
static public Int16 op_Implicit(JsonValue value); static public JsonValue op_Implicit(String value);
static public UInt16 op_Implicit(JsonValue value); static public JsonValue op_Implicit(Char value);
static public SByte op_Implicit(JsonValue value); static public JsonValue op_Implicit(DateTime value);
static public Byte op_Implicit(JsonValue value); static public JsonValue op_Implicit(Guid value);
static public Uri op_Implicit(JsonValue value); static public JsonValue op_Implicit(Uri value);
static public Guid op_Implicit(JsonValue value); static public JsonValue op_Implicit(SByte value);
static public TimeSpan op_Implicit(JsonValue value); static public JsonValue op_Implicit(UInt16 value);
static public DateTime op_Implicit(JsonValue value); static public JsonValue op_Implicit(UInt32 value);
static public Char op_Implicit(JsonValue value); static public JsonValue op_Implicit(UInt64 value);
static public Boolean op_Implicit(JsonValue value); static public JsonValue op_Implicit(DateTimeOffset value);
static public DateTimeOffset op_Implicit(JsonValue value);  
static public JsonValue op_Implicit(Boolean value);  
static public JsonValue op_Implicit(Byte value);  
static public JsonValue op_Implicit(Decimal value);  
static public JsonValue op_Implicit(Double value);  
static public JsonValue op_Implicit(Int16 value);  
static public JsonValue op_Implicit(Int32 value);  
static public JsonValue op_Implicit(Int64 value);  
static public JsonValue op_Implicit(Single value);  
static public JsonValue op_Implicit(String value);  
static public JsonValue op_Implicit(Char value);  
static public JsonValue op_Implicit(DateTime value);  
static public JsonValue op_Implicit(TimeSpan value);  
static public JsonValue op_Implicit(Guid value);  
static public JsonValue op_Implicit(Uri value);  
static public JsonValue op_Implicit(SByte value);  
static public JsonValue op_Implicit(UInt16 value);  
static public JsonValue op_Implicit(UInt32 value);  
static public JsonValue op_Implicit(UInt64 value);  
static public JsonValue op_Implicit(DateTimeOffset value);  
static public JsonValue Parse(String jsonString); static public JsonValue Parse(String json);
  protected void RaiseChangedEvent(Object sender, JsonValueChangeEventArgs eventArgs);
  protected void RaiseChangingEvent(Object sender, JsonValueChangeEventArgs eventArgs);
  public T ReadAs();
  public T ReadAs(T fallback);
  public Object ReadAs(Type type, Object fallback);
  public virtual Object ReadAs(Type type);
public abstract virtual void Save(Stream stream); public void Save(Stream stream);
public virtual void Save(TextWriter textWriter); public void Save(Stream stream, JsonSaveOptions options);
  public void Save(TextWriter textWriter);
  public void Save(TextWriter textWriter, JsonSaveOptions options);
  public virtual JsonValue SetValue(String key, Object value);
  public virtual JsonValue SetValue(Int32 index, Object value);
public virtual String ToString(); public virtual String ToString();
  public String ToString(JsonSaveOptions options);
  public Boolean TryReadAs(out T& valueOfT);
  public virtual Boolean TryReadAs(Type type, out Object& value);
  public virtual JsonValue ValueOrDefault(String key);
  public virtual JsonValue ValueOrDefault(Int32 index);
  public JsonValue ValueOrDefault(Object indexes);
  protected virtual void WriteAttributeString(XmlDictionaryWriter jsonWriter);

  public sealed enum JsonValueChange
  : IComparable, IFormattable, IConvertible
  { Add, Remove, Replace, Clear }

  public class JsonValueChangeEventArgs
  : EventArgs
  public JsonValueChange Change { get; }
  public JsonValue Child { get; }
  public Int32 Index { get; }
  public String Key { get; }

  public abstract sealed class JsonValueLinqExtensions
 
  static public JsonArray ToJsonArray(IEnumerable`1<JsonValue> items);
  static public JsonObject ToJsonObject(IEnumerable`1<KeyValuePair`2<String, JsonValue>> items);