ASP.Net MVC:如何基于原始 Json 数据创建 JsonResult
有一个包含以下原始 Json 数据的 string
(为了问题而简化):
var MyString = "{ 'val': 'apple' }";
如何创建表示 MyString
的 JsonResult
对象?
我尝试使用 Json(object) 方法。但它将原始 json 数据作为字符串处理 - 逻辑上:P-。所以返回的 HTTP 响应看起来像:
"{ 'val': 'apple' }"
而不是给定的原始 Json 数据:
{ 'val': 'apple' }
这就是我想要实现的:
Having a string
containing the following raw Json data (simplified for the sake of the question):
var MyString = "{ 'val': 'apple' }";
How can I create a JsonResult
object representing MyString
?
I tried to use the Json(object) method. but it handles the raw json data as an string -logically :P-. So the returned HTTP response looks like:
"{ 'val': 'apple' }"
instead of the given raw Json Data:
{ 'val': 'apple' }
this is what I want to achieve:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Controller
上的Json()
方法实际上是一个创建新JsonResult
的辅助方法。如果我们查看 源此类的代码*,我们可以看到它并没有真正做那么多——只是将内容类型设置为application/json
,序列化您的数据对象使用JavaScriptSerializer
,并将结果字符串写入其中。您可以通过从您的代码返回ContentResult
来复制此行为(减去序列化,因为您已经这样做了)控制器代替。* 从 MVC2 开始,如果用户发出 HTTP GET 请求(而不是 POST),
JsonResult
也会引发异常。允许用户使用 HTTP GET 检索 JSON 会产生安全隐患在您自己的应用程序中允许这样做之前,您应该了解这一点。The
Json()
method onController
is actually a helper method that creates a newJsonResult
. If we look at the source code for this class*, we can see that it's not really doing that much -- just setting the content type toapplication/json
, serializing your data object using aJavaScriptSerializer
, and writing it the resulting string.. You can duplicate this behavior (minus the serialization, since you've already done that) by returning aContentResult
from your controller instead.* Starting in MVC2,
JsonResult
also throws an exception if the user is making an HTTP GET request (as opposed to say a POST). Allowing users to retrieve JSON using an HTTP GET has security implications which you should be aware of before you permit this in your own app.我从字符串生成 json 数据的方法是在控制器中使用
JavaScriptResult
:然后,当您请求将 json 字符串传递给控制器中的该操作时,结果将是一个带有 javascript 标头的文件。
The way I have generated json data from a string is by using
JavaScriptResult
in the controller:Then when you request pass the json string to that action in your controller, the result will be a file with javascript headers.
我认为你可以为此使用 JavaScriptSerializer 类
I think you can use the JavaScriptSerializer class for this