如何反序列化控制器中收到的JSON字符串

时间:2016-01-16 15:06:36

标签: jquery json asp.net-mvc

我收到了控制器收到的JSON字符串,我无法反序列化它。请帮忙。 我附加了jquery代码和控制器方法,其中接收到JSON字符串。 Json收到:" [\" account2 \",\" account1 \"] [\" BCS \"] [\&#34 ;是\"]"

image

server {
  listen 80;

  root /app/www;
  index index.html;

  location / {
    try_files $uri $uri/ /index.html;
  }
}

控制器代码: -

$("#btn1").on("click", function ()
        {
            alert(j + " " + k);

            $.ajax({
                type: 'post',
                url: '/TodoList/searchdata',
                traditional: true,
                dataType:"json",
                data: "myArray1="+JSON.stringify(i) +JSON.stringify(j)+JSON.stringify(k),
                success: function (data)
                {
                    alert(data);
                }
            })

        });

2 个答案:

答案 0 :(得分:0)

这不是JSON。 我相信你会对它进行双重序列化/编码:)。

答案 1 :(得分:0)

您要么让控制器接收对象而不是字符串并传递

{ 'firstField': i,
  'secondField': j,
  'thirdField': k
}

或尝试

的控制器签名
public JsonResult searchdata(List<string> firstField, List<string> secondField, List<string> thirdField)

并通过使用GET而不是AJAX帖子将以下内容附加到URL进行调用

"?firstField=" + JSON.stringify(i) + "&secondField=" + JSON.stringify(j) + "&thirdField=" + JSON.stringify(k);