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
Ответы
Ответ 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.
}