Convert JS object to JSON string

JavascriptJsonStringObject

Javascript Problem Overview


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"}'

Javascript Solutions


Solution 1 - Javascript

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"
};
console.log(JSON.stringify(j));

Solution 2 - Javascript

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

> lang-text > 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. >

Solution 3 - Javascript

Check out updated/better way by Thomas Frank:

> 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.

Solution 4 - Javascript

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.

Solution 5 - Javascript

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

The second parameter is replacer. It can be used as Filter where you can filter out certain key values when stringifying. If set to null it will return all key value pairs

Solution 6 - Javascript

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)

Solution 7 - Javascript

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

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

Solution 8 - Javascript

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

Solution 9 - Javascript

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][1] 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 [1]: https://stackoverflow.com/users/5052011/rohit-kumar

Solution 10 - Javascript

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/

Solution 11 - Javascript

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

Solution 12 - Javascript

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"}

Solution 13 - Javascript

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}'

Solution 14 - Javascript

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));

Solution 15 - Javascript

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 ();

        // When the actual variable was a number, it was returning a number between quotation marks
        // return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"';

        // Now, we are verifing if is a number and, if it is, we remove the quotation marks
        str = str.match (/^\".*\"$/) ? str : '"' + str.replace (/"/g, '\\"') + '"';

        if (isNaN (str.replace (/^["]/, '').replace (/["]$/, '')))
            return str;
        else
            return str.replace (/^["]/, '').replace (/["]$/, '');
    }

    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;
}

Solution 16 - Javascript

Just use JSON.stringify to do such conversion - however remember that fields which have undefined value will not be included into json

var j={"name":"binchen", "remember":undefined, "age": null };

var s=JSON.stringify(j);

console.log(s);

The field remember 'disappear' from output json

Solution 17 - Javascript

So in order to convert a js object to JSON String: 

The simple syntax for converting an object to a string is

JSON.stringify(value)

The full syntax is: JSON.stringify(value[, replacer[, space]])

Let’s see some simple examples. Note that the whole string gets double quotes and all the data in the string gets escaped if needed.

JSON.stringify("foo bar"); // ""foo bar""
JSON.stringify(["foo", "bar"]); // "["foo","bar"]"
JSON.stringify({}); // '{}'
JSON.stringify({'foo':true, 'baz':false}); /* " 
{"foo":true,"baz":false}" */



const obj = { "property1":"value1", "property2":"value2"};
const JSON_response = JSON.stringify(obj);
console.log(JSON_response);/*"{ "property1":"value1", 
"property2":"value2"}"*/

Solution 18 - Javascript

use JSON.stringify(param1, param2, param3);

What is: -

param1 --> value to convert to JSON

param2 --> function to stringify in your own way. Alternatively, it serves as a white list for which objects need to be included in the final JSON.

param3 --> A Number data type which indicates number of whitespaces to add. Max allowed are 10.

Solution 19 - Javascript

convert str => obj

const onePlusStr = '[{"brand":"oneplus"},{"model":"7T"}]';

const onePLusObj = JSON.parse(onePlusStr);

convert obj => str

const onePLusObjToStr = JSON.stringify(onePlusStr);

References of JSON parsing in JS:
JSON.parse() : click
JSON.stringify() : click

Solution 20 - Javascript

The most popular way is below:

var obj = {name: "Martin", age: 30, country: "United States"};   
// Converting JS object to JSON string
var json = JSON.stringify(obj);
console.log(json);

Solution 21 - Javascript

Very easy to use method, but don't use it in release (because of possible compatibility problems).

Great for testing on your side.

Object.prototype.toSource()

//Usage:
obj.toSource();

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBin ChenView Question on Stackoverflow
Solution 1 - JavascriptAndrisView Answer on Stackoverflow
Solution 2 - JavascriptIgnacio Vazquez-AbramsView Answer on Stackoverflow
Solution 3 - JavascriptSarfrazView Answer on Stackoverflow
Solution 4 - JavascriptAravindan VenkatesanView Answer on Stackoverflow
Solution 5 - JavascriptVignesh MuruganView Answer on Stackoverflow
Solution 6 - JavascriptNazrul IslamView Answer on Stackoverflow
Solution 7 - JavascriptAriel CabibView Answer on Stackoverflow
Solution 8 - JavascriptDulacosteView Answer on Stackoverflow
Solution 9 - JavascriptSamView Answer on Stackoverflow
Solution 10 - JavascriptRohit KumarView Answer on Stackoverflow
Solution 11 - JavascriptSubroto BiswasView Answer on Stackoverflow
Solution 12 - JavascriptAlongkornView Answer on Stackoverflow
Solution 13 - JavascriptKARTHIKEYAN.AView Answer on Stackoverflow
Solution 14 - JavascriptPavel NetesaView Answer on Stackoverflow
Solution 15 - JavascriptHaukeView Answer on Stackoverflow
Solution 16 - JavascriptKamil KiełczewskiView Answer on Stackoverflow
Solution 17 - JavascriptRahul ChoudharyView Answer on Stackoverflow
Solution 18 - JavascriptDeepak AgrawalView Answer on Stackoverflow
Solution 19 - JavascriptyashView Answer on Stackoverflow
Solution 20 - JavascriptMehadi HassanView Answer on Stackoverflow
Solution 21 - JavascriptbodichView Answer on Stackoverflow