编写C#Asp.net MVC 4 Json Parser

时间:2015-09-18 10:06:44

标签: c# jquery asp.net json asp.net-mvc

我是asp.net mvc 4框架的新手。我希望代码使用jquery到数组列表来解析从视图接收到的json。我的json是这样的:

"{\"ServiceDataModel\":[{\"ServiceId\":\"7\",\"ServiceName\":\"Test Service\",\"ServiceRate\":\"4\",\"NoOfTimes\":\"1\",\"TotalAmount\":\"4\",\"Discount\":\"1\",\"NetAmount\":\"3\"},
{\"ServiceId\":\"7\",\"ServiceName\":\"Test Service\",\"ServiceRate\":\"36\",\"NoOfTimes\":\"1\",\"TotalAmount\":\"36\",\"Discount\":\"2\",\"NetAmount\":\"34\"}]}"

我不确定这是不是正确的json?我在调试期间在控制器中收到了这个。

这是我的代码:

public ActionResult SavePatientServices(string id, string totalnetamount, string remarks, string approvedby)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string test = Regex.Unescape(id);

        ServiceDataModel datum = JsonConvert.DeserializeObject<ServiceDataModel>(id);
        dynamic stuff = JsonConvert.DeserializeObject(id);

       var log = JsonConvert.DeserializeObject<ServiceDataModel>(id);
       var obj = JsonConvert.DeserializeObject<List<ServiceDataModel>>(stuff);
        //List<ServiceDataModel> ListAnswers = serializer.Deserialize<List<ServiceDataModel>>(stuff);
        return Content("");

    }

2 个答案:

答案 0 :(得分:0)

您收到了哪些错误消息?

如果您的JSON相当静态,我建议您使用JSON2Csharp之类的在线工具将此文本转换为已填充的对象。

完成后,您可以使用JSON.NET使用以下命令反序列化此文本:

JsonConvert.DeserializeObject<RootObject>(string json);

答案 1 :(得分:0)

不要担心解析|序列化,您可以轻松地将对象列表作为json发送。

MVC行动:

像这样发送你的对象它会像json一样自动处理。不要担心序列化。

public JsonResult GetUsersData()  
        {  
         var usersList = new List<UserModel>  
            {  
                new UserModel  
                {  
                    UserId = 1,  
                    UserName = "Ram",  
                    Company = "Mindfire Solutions"  
                },  
                new UserModel  
                {  
                    UserId = 1,  
                    UserName = "chand",  
                    Company = "Mindfire Solutions"  
                },  
                new UserModel  
                {  
                    UserId = 1,  
                    UserName = "Abc",  
                    Company = "Abc Solutions"  
                }  
            };        

            return Json(usersList , JsonRequestBehavior.AllowGet);  
        }  

Ajax:

Ajax具有XML和Json的默认解析。不要担心解析。

$.ajax({  
    type: "GET",
    contentType: "application/json; charset=utf-8",  
    url:"", 
    success: function (data) {      
    },
    error: function (xhr, ajaxOptions, thrownError) {      
    }
});