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:
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.I think you can use the JavaScriptSerializer class for this
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.