jquery json to string?
Instead of going from a json string and using $.parseJSON, I need to take my object and store it in a variable as string representing json.
(A library I'm dealing with expects a malformed json type so I need to mess around with it to get it to work.)
What's the best way to do this?
Edit: You should use the json2.js library from Douglas Crockford instead of implementing the code below. It provides some extra features and better/older browser support.
Grab the json2.js file from: https://github.com/douglascrockford/JSON-js
// implement JSON.stringify serialization
JSON.stringify = JSON.stringify || function (obj) {
var t = typeof (obj);
if (t != "object" || obj === null) {
// simple data type
if (t == "string") obj = '"'+obj+'"';
return String(obj);
}
else {
// recurse array or object
var n, v, json = [], arr = (obj && obj.constructor == Array);
for (n in obj) {
v = obj[n]; t = typeof(v);
if (t == "string") v = '"'+v+'"';
else if (t == "object" && v !== null) v = JSON.stringify(v);
json.push((arr ? "" : '"' + n + '":') + String(v));
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
};
var tmp = {one: 1, two: "2"};
JSON.stringify(tmp); // '{"one":1,"two":"2"}'
Code from: http://www.sitepoint.com/blogs/2009/08/19/javascript-json-serialization/
I use
$.param(jsonObj)
which gets me the string.
Most browsers have a native JSON
object these days, which includes parse
and stringify
methods. So just try JSON.stringify({})
and see if you get "{}"
. You can even pass in parameters to filter out keys or to do pretty-printing, eg JSON.stringify({a:1,b:2}, null, 2)
puts a newline and 2 spaces in front of each key.
JSON.stringify({a:1,b:2}, null, 2)
gives
"{n "a": 1,n "b": 2n}"
which prints as
{
"a": 1,
"b": 2
}
As for the messing around part of your question, use the second parameter. From http://www.javascriptkit.com/jsref/json.shtml :
The replacer parameter can either be a function or an array of String/Numbers. It steps through each member within the JSON object to let you decide what value each member should be changed to. As a function it can return:
As an array, the values defined inside it corresponds to the names of the properties inside the JSON object that should be retained when converted into a JSON object.
链接地址: http://www.djcxy.com/p/8076.html下一篇: jquery json的字符串?