我想做这样的事情:
var taxonomyJson = JObject.FromObject(taxonomy);
return Json(taxonomyJson, JsonRequestBehavior.AllowGet);
我尝试将taxonomyJson
转换为JToken
和其他各种属性。我尝试过包装等等。但它总会引发错误。
当然,我可以返回taxonomyJson.ToString()
,但我不太喜欢它,因为它在我的字符串周围包含额外的双倍配额,我的JavaScript必须在调用JSON.parse()
之前将其剥离在它上面。
如果Json()
可以处理可序列化的对象,为什么它不能处理已准备好JSON的JObject
或JToken
?
答案 0 :(得分:12)
怎么样:
return Content(taxonomyJson.ToString(), "application/json");
这是一个数组:
var jObject = JObject.FromObject(new { Payload = arrayOfJObjects });
return Content(jObject.ToString(), "application/json");
答案 1 :(得分:0)
它真的意味着处理你已经拥有的taxonomy
对象,不需要使用一个Json序列化器(Json.NET)转换它来使用另一个(System.Web.Javascript.Serializer)将其发送下来电线。
答案 2 :(得分:0)
您可以创建一个辅助方法来执行此服务器端,如
public static class JSON{
public static string ToJavaScriptObject(this object @object){
var jobject = JObject.FromObject(@object).ToString();
jobject = jobject.Substring(1);
jobject = jobject.Substring(0,jobject.Length-1);
return jobject;
}
}