我正在使用控制器来创建JSON字符串。
StringBuilder builder = new StringBuilder();
...
builder.Append(String.Format(@"{{""lat"":{0}, ""lon"":{1}}},", latitude, longitude));
当涉及到视图时,上面的代码将呈现为类似
的内容"lat":10.7654200827348, "lon":106.681716282384}
所以jQuery.parseJSON()
不起作用,因为它不理解"
我该如何解决这个问题?提前谢谢
答案 0 :(得分:2)
永远不要像这样手动创建JSON。您可以让控制器操作返回JsonResult:
public ActionResult SomeAction()
{
var model = new
{
lat = latitude,
lon = longitude
};
return Json(model, JsonRequestBehavior.AllowGet);
}
然后您可以使用AJAX调用来使用此操作:
<script type="text/javascript">
$.getJSON('@Url.Action("SomeAction")', function(result) {
// you could use result.lat and result.lon here directly
alert('latitude: ' + result.lat + ', longitude: ' + result.lon);
});
</script>
在这种情况下,您无需手动构建或解析任何JSON。这个管道将由你的框架处理。
答案 1 :(得分:0)
我不知道这是否可以解决您的问题...但无论如何您应该遵循这个建议!
使用JavaScriptSerializer
中的System.Web.Extensions.dll
生成您的JSON!
var serializer = new JavaScriptSerializer();
builder.Append(serializer.Serialize(new { lat = latitude, lon = longitude }));