解析JSON响应的最简单方法

use*_*592 32 c# asp.net json

有没有简单的方法在c#下面解析JSOn

{"type":"text","totalprice":"0.0045","totalgsm":"1","remaincredit":"44.92293","messages": [
{"status":"1","messageid":"234011120530636881","gsm":"923122699633"}
]}
Run Code Online (Sandbox Code Playgroud)

如果有多个结果.

Pat*_*man 58

跟着这些步骤:

  1. 使用json2csharp.com将您的JSON转换为C#;
  2. 创建一个类文件并将上面生成的代码放在那里;
  3. Newtonsoft.Json使用Nuget Package Manager 将库添加到项目中;
  4. 使用以下代码转换从您的服务收到的JSON:

     RootObject r = JsonConvert.DeserializeObject<RootObject>(json);
    
    Run Code Online (Sandbox Code Playgroud)

(随意重命名RootObject为更有意义的东西.其他类应保持不变.)


Łuk*_*wik 22

您可以安全地使用内置JavaScriptSerializer而无需引用其他第三方库:

var ser = new System.Web.Script.Serialization.JavaScriptSerializer();
ser.DeserializeObject(json);
Run Code Online (Sandbox Code Playgroud)

  • 如果你只是做一个简单的解析或者你根本不想使用第三方库,IMO就是这样的. (4认同)
  • 这对我很有帮助.DeserializeObject返回了Dictionary <string,object>类型的对象.字典中的对象是字符串,对象数组或Dictionary <string,object>的更多对象 (3认同)

小智 5

我找到了一种无需使用任何外部API即可获取的方法

        using (var w = new WebClient())
        {
            var json_data = string.Empty;
            string url = "YOUR URL";
            // attempt to download JSON data as a string
            try
            {
                json_data = w.DownloadString(url);
                JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
                var result = jsSerializer.DeserializeObject(json_data);
                Dictionary<string, object> obj2 = new Dictionary<string, object>();
                obj2=(Dictionary<string,object>)(result);

                string val=obj2["KEYNAME"].ToString();
            }
            catch (Exception) { }
            // if string with JSON data is not empty, deserialize it to class and return its instance 
        }
Run Code Online (Sandbox Code Playgroud)