Convert JS object to JSON string

Bin Chen Source

If I defined an object in JS with:

var j={"name":"binchen"};

How can I convert the object to JSON? The output string should be:

'{"name":"binchen"}'
javascriptjsonnode.jsstringobject

Answers

answered 8 years ago Ignacio Vazquez-Abrams #1

With JSON.stringify() found in json2.js or native in most modern browsers.

   JSON.stringify(value, replacer, space)
        value       any JavaScript value, usually an object or array.

       replacer    an optional parameter that determines how object
                    values are stringified for objects. It can be a
                    function or an array of strings.

       space       an optional parameter that specifies the indentation
                    of nested structures. If it is omitted, the text will
                    be packed without extra whitespace. If it is a number,
                    it will specify the number of spaces to indent at each
                    level. If it is a string (such as '\t' or ' '),
                    it contains the characters used to indent at each level.

       This method produces a JSON text from a JavaScript value.

answered 8 years ago Sarfraz #2

Check out updated/better way:

Update May 17, 2008: Small sanitizer added to the toObject-method. Now toObject() will not eval() the string if it finds any malicious code in it.For even more security: Don't set the includeFunctions flag to true.

Douglas Crockford, father of the JSON concept, wrote one of the first stringifiers for JavaScript. Later Steve Yen at Trim Path wrote a nice improved version which I have used for some time. It's my changes to Steve's version that I'd like to share with you. Basically they stemmed from my wish to make the stringifier:

• handle and restore cyclical references  
• include the JavaScript code for functions/methods (as an option)  
• exclude object members from Object.prototype if needed.

answered 8 years ago Andris #3

All current browsers have native JSON support built in. So as long as you're not dealing with prehistoric browsers like IE6/7 you can do it just as easily as that:

var j={"name":"binchen"};
JSON.stringify(j); // '{"name":"binchen"}'

answered 4 years ago Bhaumik Mehta #4

if you have a json string and it's not wrapped with [] then wrap it up first

var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);

OR

var jsonobj = eval('(' + str + ')');
console.log(jsonobj);

answered 3 years ago Om Prakash #5

JSON.stringify({"key":"value"});

answered 3 years ago Ariel Cabib #6

If you're using AngularJS, the 'json' filter should do it:

<span>{{someObject | json}}</span>

answered 3 years ago Rohit Kumar #7

One custom defined for this , until we do strange from stringify method

var j={"name":"binchen","class":"awesome"};
var dq='"';
var json="{";
var last=Object.keys(j).length;
var count=0;
for(x in j)
{
json += dq+x+dq+":"+dq+j[x]+dq;
count++;
if(count<last)
   json +=",";
}
json+="}";
document.write(json);

OUTPUT

{"name":"binchen","class":"awesome"}

LIVE http://jsfiddle.net/mailmerohit5/y78zum6v/

answered 3 years ago Aatif Bandey #8

Json Stringify can convert your js object to json

 var x = {"name" : "name1"};
 JSON.stringify(x);

answered 3 years ago Aravind Sachin #9

You can use JSON.stringify() method to convert JSON object to String.

var j={"name":"binchen"};
JSON.stringify(j)

For reverse process, you can use JSON.parse() method to convert JSON String to JSON Object.

answered 2 years ago Nazrul Islam #10

In angularJS

angular.toJson(obj, pretty);

obj: Input to be serialized into JSON.

pretty(optional):
If set to true, the JSON output will contain newlines and whitespace. If set to an integer, the JSON output will contain that many spaces per indentation.

(default: 2)

answered 2 years ago Tyler Durden #11

var someObj = { "name" : "some name" };
var someObjStr = JSON.stringify(someObj);
console.log( someObjStr  );

answered 2 years ago Sam #12

I was having issues with stringify running out of memory and other solutions didnt seem to work (at least I couldn't get them to work) which is when I stumbled on this thread. Thanks to Rohit Kumar I just iterate through my very large JSON object to stop it from crashing

var j = MyObject;
var myObjectStringify = "{\"MyObject\":[";
var last = j.length
var count = 0;
for (x in j) {
    MyObjectStringify += JSON.stringify(j[x]);
    count++;
    if (count < last)
        MyObjectStringify += ",";
}
MyObjectStringify += "]}";

MyObjectStringify would give you your string representaion (just as mentioned other times in this thread) except if you have a large object, this should also work - just make sure you build it to fit your needs - I needed it to have a name than array

answered 2 years ago Alongkorn Chetasumon #13

you can use native stringify function like this

const j={ "name": "binchen" }

/** convert json to string */
const jsonString = JSON.stringify(j)

console.log(jsonString) // {"name":"binchen"}

answered 2 years ago Vignesh Murugan #14

JSON.stringify(j,null,4) would give you beautified JSON in case you need beautification also

answered 2 years ago Subroto Biswas #15

Woking... Easy to use

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvert = JSON.stringify(formData);  // Convert to json
});

Thanks

answered 2 years ago Subroto Biswas #16

Just Copy and pase

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
});

answered 2 years ago KARTHIKEYAN.A #17

if you want to get json properties value in string format use the following way

var i = {"x":1}

var j = JSON.stringify(i.x);

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'

answered 2 years ago Dulith De Cozta #18

JSON.stringify turns a Javascript object into JSON text and stores that JSON text in a string.

The conversion is an Object to String

JSON.parse turns a string of JSON text into a Javascript object.

The conversion is a String to Object

var j={"name":"binchen"};

to make it a JSON String following could be used.

JSON.stringify({"key":"value"});

JSON.stringify({"name":"binchen"});

For more info you can refer to this link below.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

answered 1 year ago Arvind Audacious #19

const obj = { "name":"xxx", "city":"York"};
const myJSON = JSON.stringify(obj);
  console.log(myJSON);

answered 11 months ago nada diaa #20

define object

let obj = {
"firstname" : "Hello",
"lastname" : "javascript"

};

then convert it to string using this code

strObj= JSON.stringify(obj);

to make sure console the result

console.log(strObj);

answered 9 months ago ubastosir #21

All you need is to add this code below
var j={"name":"binchen"}; JSON.stringify(j); // '{"name":"binchen"}'

answered 7 months ago Pavel Netesa #22

For debugging in Node JS you can use util.inspect(). It works better with circular references.

var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));

answered 6 months ago Mitesh Panchal #23

you can use JSON.stringify() function to do that.

answered 4 months ago Hauke #24

The existing JSON replacements where too much for me, so I wrote my own function. This seems to work, but I might have missed several edge cases (that don't occur in my project). And will probably not work for any pre-existing objects, only for self-made data.

function simpleJSONstringify(obj) {
    var prop, str, val,
        isArray = obj instanceof Array;

    if (typeof obj !== "object") return false;

    str = isArray ? "[" : "{";

    function quote(str) {
        if (typeof str !== "string") str = str.toString();
        return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"'
    }

    for (prop in obj) {
        if (!isArray) {
            // quote property
            str += quote(prop) + ": ";
        }

        // quote value
        val = obj[prop];
        str += typeof val === "object" ? simpleJSONstringify(val) : quote(val);
        str += ", ";
    }

    // Remove last colon, close bracket
    str = str.substr(0, str.length - 2)  + ( isArray ? "]" : "}" );

    return str;
}

answered 1 month ago Tiago Loureiro #25

What you want is :

var yourObject = {a : "string", b : 2 };
Json.Stringify(yourObject);

Either way if you want a pretty print you should check: How can I pretty-print JSON using JavaScript?

More check this for info on JSON stringify/parse.

comments powered by Disqus