Подтвердить что ты не робот

Parse JSON String для объекта JSON в С#.NET

У меня есть строка JSON, возвращаемая моей веб-службой SOAP в .NET. Это выглядит так:

{
 "checkrecord":
   [
     {
      "rollno":"abc2",
      "percentage":40,
      "attended":12,
      "missed":34
     }
  ],
 "Table1":[]
}

Теперь я хочу проанализировать эту строку для объекта JSON. Я также прочитал этот, где они использовали эту строку кода:

JObject jsonObj = JObject.Parse(json);

Итак, могу ли я сделать то же самое, заменив "json" на мое имя строки. Также мне нужно ссылаться на любую другую DLL, кроме NewtonSoft.dll?

Кстати, вот полный webservice code

4b9b3361

Ответ 1

использовать new JavaScriptSerializer().Deserialize<object>(jsonString)

Вам нужна System.Web.Extensions dll и импортируйте следующее пространство имен.

Пространство имен: System.Web.Script.Serialization

для получения дополнительной информации MSDN

Ответ 2

Другим выбором, кроме JObject, является System.Json.JsonValue для объекта JSON с слабым типом.

Он также имеет JsonValue blob = JsonValue.Parse(json);, который вы можете использовать. Вероятно, blob будет иметь тип JsonObject, который получен из JsonValue, но может быть JsonArray. Проверьте blob.JsonType, если вам нужно знать.

И чтобы ответить на ваш вопрос, ДА, вы можете заменить json на имя вашей фактической переменной, которая содержит строку JSON.;-D

Существует System.Json.dll, который вы должны добавить в свои проекты.

-Jesse

Ответ 3

Я вижу, что этот вопрос очень старый, но это решение, которое я использовал для одной и той же проблемы, и, похоже, он требует немного меньше кода, чем другие.

Как сказал @Maloric в своем ответе на этот вопрос:

var jo = JObject.Parse(myJsonString);

Чтобы использовать JObject, вам потребуется следующее в вашем файле класса

using Newtonsoft.Json.Linq;

Ответ 4

Поскольку вы упомянули, что используете Newtonsoft.dll, вы можете преобразовать строку JSON в объект с помощью своих возможностей:

MyClass myClass = JsonConvert.DeserializeObject<MyClass>(your_json_string);

[Serializable]
public class MyClass
{
    public string myVar {get; set;}
    etc.
}