Silverlight 5 WinRT

  public abstract interface IJsonArray
  : IJsonValue
  public abstract virtual JsonArray GetArrayAt(UInt32 index);
  public abstract virtual Boolean GetBooleanAt(UInt32 index);
  public abstract virtual Double GetNumberAt(UInt32 index);
  public abstract virtual JsonObject GetObjectAt(UInt32 index);
  public abstract virtual String GetStringAt(UInt32 index);

  public abstract interface IJsonArrayFactory
 
  public abstract virtual JsonArray CreateJsonArray(String input);

  public abstract interface IJsonObject
  : IJsonValue
  public abstract virtual JsonArray GetNamedArray(String name);
  public abstract virtual Boolean GetNamedBoolean(String name);
  public abstract virtual Double GetNamedNumber(String name);
  public abstract virtual JsonObject GetNamedObject(String name);
  public abstract virtual String GetNamedString(String name);
  public abstract virtual JsonValue GetNamedValue(String name);
  public abstract virtual void SetNamedValue(String name, IJsonValue value);

  public abstract interface IJsonObjectFactory
 
  public abstract virtual JsonObject CreateJsonObject(String input);

  public abstract interface IJsonValue
 
  public abstract virtual JsonValueType ValueType { get; }
  public abstract virtual JsonArray GetArray();
  public abstract virtual Boolean GetBoolean();
  public abstract virtual Double GetNumber();
  public abstract virtual JsonObject GetObject();
  public abstract virtual String GetString();
  public abstract virtual void Parse(String input);
  public abstract virtual void SetBoolean(Boolean value);
  public abstract virtual void SetNumber(Double value);
  public abstract virtual void SetString(String value);
  public abstract virtual String Stringify();

  public abstract interface IJsonValueStatics
 
  public abstract virtual JsonValue CreateBooleanValue(Boolean input);
  public abstract virtual JsonValue CreateNumberValue(Double input);
  public abstract virtual JsonValue CreateStringValue(String input);

  public sealed class JsonArray
  : __ComObject, IJsonArray, IJsonValue, IList`1<IJsonValue>, ICollection`1<IJsonValue>, IEnumerable`1<IJsonValue>, IEnumerable
  public virtual JsonValueType ValueType { get; }
  public virtual JsonArray GetArray();
  public virtual JsonArray GetArrayAt(UInt32 index);
  public virtual Boolean GetBoolean();
  public virtual Boolean GetBooleanAt(UInt32 index);
  public virtual Double GetNumber();
  public virtual Double GetNumberAt(UInt32 index);
  public virtual JsonObject GetObject();
  public virtual JsonObject GetObjectAt(UInt32 index);
  public virtual String GetString();
  public virtual String GetStringAt(UInt32 index);
  public virtual void Parse(String input);
  public virtual void SetBoolean(Boolean value);
  public virtual void SetNumber(Double value);
  public virtual void SetString(String value);
  public virtual String Stringify();

  public sealed class JsonObject
  : __ComObject, IJsonObject, IJsonValue, IDictionary`2<String, IJsonValue>, ICollection`1<KeyValuePair`2<String, IJsonValue>>, IEnumerable`1<KeyValuePair`2<String, IJsonValue>>, IEnumerable
  public virtual JsonValueType ValueType { get; }
  public virtual JsonArray GetArray();
  public virtual Boolean GetBoolean();
  public virtual JsonArray GetNamedArray(String name);
  public virtual Boolean GetNamedBoolean(String name);
  public virtual Double GetNamedNumber(String name);
  public virtual JsonObject GetNamedObject(String name);
  public virtual String GetNamedString(String name);
  public virtual JsonValue GetNamedValue(String name);
  public virtual Double GetNumber();
  public virtual JsonObject GetObject();
  public virtual String GetString();
  public virtual void Parse(String input);
  public virtual void SetBoolean(Boolean value);
  public virtual void SetNamedValue(String name, IJsonValue value);
  public virtual void SetNumber(Double value);
  public virtual void SetString(String value);
  public virtual String Stringify();

  public sealed class JsonValue
  : __ComObject, IJsonValue
  public virtual JsonValueType ValueType { get; }
  static public JsonValue CreateBooleanValue(Boolean input);
  static public JsonValue CreateNumberValue(Double input);
  static public JsonValue CreateStringValue(String input);
  public virtual JsonArray GetArray();
  public virtual Boolean GetBoolean();
  public virtual Double GetNumber();
  public virtual JsonObject GetObject();
  public virtual String GetString();
  public virtual void Parse(String input);
  public virtual void SetBoolean(Boolean value);
  public virtual void SetNumber(Double value);
  public virtual void SetString(String value);
  public virtual String Stringify();

  public sealed enum JsonValueType
  : IComparable, IFormattable, IConvertible
  { Null, Boolean, Number, String, Array, Object }