Как я могу декодировать символы HTML в C #?

Я использую: 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; }
}

373
задан Mark Byers 5 November 2011 в 21:23
поделиться

5 ответов

Можно использовать HttpUtility.HtmlDecode

при использовании.NET 4.0 +, можно также использовать WebUtility.HtmlDecode , который не требует дополнительной ссылки на сборку, поскольку это доступно в System.Net пространство имен.

599
ответ дан Quintin Robinson 5 November 2011 в 21:23
поделиться

Как @CQ заявляет, необходимо использовать HttpUtility. HtmlDecode, но это не доступно в проекте.NET не-ASP по умолчанию.

Для приложения.NET не-ASP, необходимо добавить ссылку на System.Web.dll. Щелкните правой кнопкой по своему проекту в Проводнике Решения, выберите, "Добавьте Ссылка", тогда просмотрите список для System.Web.dll.

Теперь, когда ссылка добавляется, необходимо быть в состоянии получить доступ к методу с помощью полностью определенного имени System.Web.HttpUtility.HtmlDecode или вставить using оператор для System.Web для создания вещей легче.

42
ответ дан OwenP 5 November 2011 в 21:23
поделиться

Если нет никакого контекста Сервера (т.е. Ваше выполнение офлайн), можно использовать HttpUtility. HtmlDecode.

16
ответ дан Rob Cooper 5 November 2011 в 21:23
поделиться

Используйте Server.HtmlDecode для декодирования объектов HTML. Если Вы хотите к Escape HTML, т.е. отображаетесь < и > символ пользователю, используйте Server.HtmlEncode.

7
ответ дан Daniel Schierbeck 5 November 2011 в 21:23
поделиться

В .Net 4.0:

System.Net.WebUtility.HtmlDecode()

Нет необходимости включать сборку для проекта C#

186
ответ дан 22 November 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: