Как я могу разобрать JSON с C #? - PullRequest
391 голосов
/ 08 июля 2011

У меня есть следующий код:

var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);

Входные данные в responsecontent - это JSON, но они неправильно анализируются в объекте.Как мне правильно десериализовать его?

Ответы [ 13 ]

1 голос
/ 28 июня 2019
         string json = @"{
            'Name': 'Wide Web',
            'Url': 'www.wideweb.com.br'}";

        JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
        dynamic j = jsonSerializer.Deserialize<dynamic>(json);
        string name = j["Name"].ToString();
        string url = j["Url"].ToString();
0 голосов
/ 09 августа 2017
var result = controller.ActioName(objParams);
IDictionary<string, object> data = (IDictionary<string, object>)new System.Web.Routing.RouteValueDictionary(result.Data);
Assert.AreEqual("Table already exists.", data["Message"]);
0 голосов
/ 01 июня 2016

Я думаю, что лучший ответ, который я видел, был @ MD_Sayem_Ahmed.

Ваш вопрос «Как я могу разобрать Json с C #», но кажется, что вы хотите декодировать Json.Если вы хотите декодировать его, ответ Ахмеда хорош.

Если вы пытаетесь выполнить это в ASP.NET Web Api, самый простой способ - создать объект передачи данных, содержащий данные, которые вы хотитеassign:

public class MyDto{
    public string Name{get; set;}
    public string Value{get; set;}
}

Вы просто добавили заголовок application / json к вашему запросу (например, если вы используете Fiddler).Затем вы должны использовать это в ASP.NET Web API следующим образом:

//controller method -- assuming you want to post and return data
public MyDto Post([FromBody] MyDto myDto){
   MyDto someDto = myDto;
   /*ASP.NET automatically converts the data for you into this object 
    if you post a json object as follows:
{
    "Name": "SomeName",
      "Value": "SomeValue"
}
*/
   //do some stuff
}

Это очень помогло мне, когда я работал в своем веб-интерфейсе, и упростило мою жизнь.

...