using System.Collections.Generic;
using System.Diagnostics;
using System.Collections;
using System.Runtime.Serialization;
using System.ComponentModel;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json.Bson;
public string name { get; set; }
public string prog { get; set; }
public string args { get; set; }
public string name { get; set; }
public string rpc { get; set; }
public string args { get; set; }
public string [] name { get; set; }
public string args { get; set; }
public string name { get; set; }
public string prog { get; set; }
public string args { get; set; }
public string name { get; set; }
public string url { get; set; }
public VM[] vmList { get; set; }
public EXE[] exeList { get; set; }
public RPC[] rpcList { get; set; }
public JAR[] jarList { get; set; }
public Link[] linkList { get; set; }
public string missionName { get; set; }
public string thumb_image { get; set; }
public UplinkPage[] uplinkPage { get; set; }
""missionName"":""missionname"",
""thumb_image"":""pics/mission-info.png"",
public static void Test()
var jsonString = GetJson();
ConsoleAndDebug.WriteLine("");
ConsoleAndDebug.WriteLine("Original JSON:");
ConsoleAndDebug.WriteLine(JToken.Parse(jsonString));
var root = JsonConvert.DeserializeObject<Rootobject>(jsonString);
var newJson = JsonConvert.SerializeObject(root, Formatting.Indented);
ConsoleAndDebug.WriteLine("");
ConsoleAndDebug.WriteLine("Re-serialized JSON:");
ConsoleAndDebug.WriteLine(newJson);
ConsoleAndDebug.WriteLine("");
var ok = JToken.DeepEquals(JToken.Parse(jsonString), JToken.Parse(newJson));
ConsoleAndDebug.WriteLine("Re-serialized JSON is NOT equivalent to original JSON...");
throw new InvalidOperationException("!JToken.DeepEquals(JToken.Parse(jsonString), JToken.Parse(newJson))");
ConsoleAndDebug.WriteLine("Re-serialized JSON is equivalent to original JSON.");
public static class ConsoleAndDebug
public static void WriteLine(object s)
public static void Main()
Console.WriteLine(string.Format("Json.NET version: {0}.\n", typeof(JsonSerializer).Assembly.FullName));