Я использую: http://json2csharp.com/ , чтобы получить класс, представляющий объект Json.
Вход:
{
"name":"John",
"age":31,
"city":"New York",
"Childs":[
{
"name":"Jim",
"age":11
},
{
"name":"Tim",
"age":9
}
]
}
Выход :
public class Child
{
public string name { get; set; }
public int age { get; set; }
}
public class Person
{
public string name { get; set; }
public int age { get; set; }
public string city { get; set; }
public List Childs { get; set; }
}
После этого я использую Newtonsoft.Json для заполнения класса:
using Newtonsoft.Json;
namespace GitRepositoryCreator.Common
{
class JObjects
{
public static string Get(object p_object)
{
return JsonConvert.SerializeObject(p_object);
}
internal static T Get(string p_object)
{
return JsonConvert.DeserializeObject(p_object);
}
}
}
Вы можете так называть:
Person jsonClass = JObjects.Get(stringJson);
string stringJson = JObjects.Get(jsonClass);
PS:
Если ваше имя переменной json не является допустимым именем C # (имя начинается с $
), вы можете исправить это следующим образом:
public class Exception
{
[JsonProperty(PropertyName = "$id")]
public string id { get; set; }
public object innerException { get; set; }
public string message { get; set; }
public string typeName { get; set; }
public string typeKey { get; set; }
public int errorCode { get; set; }
public int eventId { get; set; }
}
Можно использовать HttpUtility.HtmlDecode
при использовании.NET 4.0 +, можно также использовать WebUtility.HtmlDecode
, который не требует дополнительной ссылки на сборку, поскольку это доступно в System.Net
пространство имен.
Как @CQ заявляет, необходимо использовать HttpUtility. HtmlDecode, но это не доступно в проекте.NET не-ASP по умолчанию.
Для приложения.NET не-ASP, необходимо добавить ссылку на System.Web.dll
. Щелкните правой кнопкой по своему проекту в Проводнике Решения, выберите, "Добавьте Ссылка", тогда просмотрите список для System.Web.dll
.
Теперь, когда ссылка добавляется, необходимо быть в состоянии получить доступ к методу с помощью полностью определенного имени System.Web.HttpUtility.HtmlDecode
или вставить using
оператор для System.Web
для создания вещей легче.
Если нет никакого контекста Сервера (т.е. Ваше выполнение офлайн), можно использовать HttpUtility. HtmlDecode.
Используйте Server.HtmlDecode
для декодирования объектов HTML. Если Вы хотите к Escape HTML, т.е. отображаетесь <
и >
символ пользователю, используйте Server.HtmlEncode
.
В .Net 4.0:
System.Net.WebUtility.HtmlDecode()
Нет необходимости включать сборку для проекта C#