从C#返回JSON并在JS中反序列化它

时间:2017-03-29 20:14:17

标签: javascript c# json json.net

假设我们有这种C#方法:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetEventsJson()
{
  Event[] events = new Event[] {
  new Event
  {
    Ref = 1,
    Name = "Some Name",
    Date = new DateTime(2017, 3, 20, 12, 0, 0),
    Description = "Some Description",
    Localization = "Localization"
  }
  };
  return Newtonsoft.Json.JsonConvert.SerializeObject(events);
}

我们通过CORS请求调用此Web服务方法。 它返回类似的字符串:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">[{"Ref":1,"Name":"Some Name","Date":"2017-03-20T12:00:00","Description":"Some Description","Localization":"Localization"}]</string>

现在,我正试图在JavaScript中反序列化这个,我试图简单:

var data = jQuery.parseJSON(JSON.stringify(json));

var data = jQuery.parseJSON(json);

但它只会通过第二种方法返回错误:

Uncaught SyntaxError: Unexpected token < in JSON at position 0

或者对第一种方法没有任何作用(我不能得到例如data.Description,因为它说它是未定义的)

所以问题是:反序列化C#webservice返回的JSON的正确方法是什么?

0 个答案:

没有答案