Javascript AngularJS没有';t句柄JSON引用
我正在做一个小网站来管理食谱。我有一个MVCWebAPI服务器端和一个有角度的js前端 现在我的MVCWebAPI将JSON序列化为(干净易读,谢谢chrome插件JSONView) 但是在我的页面上,我只得到列表中的第一个对象和一个空的第二个Javascript AngularJS没有';t句柄JSON引用,javascript,asp.net-mvc,json,angularjs,model-view-controller,Javascript,Asp.net Mvc,Json,Angularjs,Model View Controller,我正在做一个小网站来管理食谱。我有一个MVCWebAPI服务器端和一个有角度的js前端 现在我的MVCWebAPI将JSON序列化为(干净易读,谢谢chrome插件JSONView) 但是在我的页面上,我只得到列表中的第一个对象和一个空的第二个tr标记。 有没有办法让AngularJS理解$ref引用?或者我应该修改我的web api配置吗 config.Formatters.XmlFormatter.SupportedMediaTypes.Remove( config.Formatte
tr
标记。
有没有办法让AngularJS理解$ref引用?或者我应该修改我的web api配置吗
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(
config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml"));
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
config.Formatters.Remove(config.Formatters.XmlFormatter);
-更新
上面的json是一个chrome扩展的漂亮表示。下面是我从服务中获得的原始数据(并用JSONLint格式化,表示它是有效的JSON):
您的JSON无效,这意味着问题出在API方面
Category: {
$ref: "2"
}
Id: 2
...
],
Id: 1
}
Id: 1
要成功解析,必须在Id:2和Id:1之前加一个逗号。api中的人员已经更新了他们的代码,因此循环现在不再发生。这解决了我的问题
无论如何,谢谢!:) 你的JSON是乱七八糟的-这真的是你从序列化中得到的吗?JSON不是字符串化的。
[
{
"$id": "1",
"Name": "Spaghetti",
"CookTime": "00:30:00",
"Servings": 2,
"CategoryId": 1,
"Category": {
"$id": "2",
"Name": "Pasta",
"Recipes": [
{
"$ref": "1"
},
{
"$id": "3",
"Name": "Recipe 2",
"CookTime": "01:20:00",
"Servings": 2,
"CategoryId": 1,
"Category": {
"$ref": "2"
}
"Id": 2
}
],
"Id": 1
}
"Id": 1
},
{
"$ref": "3"
}
]
Category: {
$ref: "2"
}
Id: 2
...
],
Id: 1
}
Id: 1