Преобразование объекта JS в строку JSON



Если я определил объект в JS с:



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


Как я могу преобразовать объект в JSON? Выходная строка должна быть:



'{"name":"binchen"}'
641   26  

26 ответов:

все текущие браузеры имеют встроенную поддержку JSON. Так что пока вы не имеете дело с доисторическими браузерами, такими как IE6/7, Вы можете сделать это так же легко, как это:

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

С JSON.stringify() нашли в json2.js или родные в большинстве современных браузеров.

   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.

Проверьте обновленный / лучший способ:

обновление 17 мая 2008: Малый дезинфицирующее средство добавлен в toObject-метод. теперь toObject () не будет eval () строка если он находит какой-либо вредоносный код в оно.Для еще большей безопасности: Не устанавливайте флаг includeFunctions имеет значение true.

Дуглас Крокфорд, отец концепции JSON, написал один из первых стрингификаторов для Яваскрипт. Позже Стив Йен в Trim Path написал хорошую улучшенную версию, которую я использовал в течение некоторого времени. Это мои изменения в версии Стива, которые я хотел бы поделиться с вами. В основном они проистекали из моего желания сделать stringifier:

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

можно использовать JSON.преобразовать в строки() метод для преобразования объекта JSON в строку.

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

для обратного процесса, вы можете использовать JSON.parse () метод преобразования строки JSON в объект JSON.

Json преобразовать в строки можно преобразовать объект js в json

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

Если вы используете AngularJS, фильтр 'json' должен сделать это:

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

в angularJS

angular.toJson(obj, pretty);

obj: Ввод для сериализации в JSON.

довольно(опционально):
Если задано значение true, вывод JSON будет содержать новые строки и пробелы. Если задано целое число, вывод JSON будет содержать столько пробелов на отступ.

(по умолчанию: 2)

JSON.stringify превращается в объект JavaScript в формате JSON текст и сохраняет этот текст в формате JSON в виде строки.

преобразование-это

JSON.stringify(j,null,4) даст вам украсили JSON в случае, если вам нужно украшение также

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

У меня были проблемы с stringify, когда заканчивалась память, и другие решения, похоже, не работали (по крайней мере, я не мог заставить их работать), когда я наткнулся на этот поток. Спасибо Рохит Кумар Я просто повторяю через мой очень большой объект JSON, чтобы остановить его от сбоя

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 даст вам ваше строковое представление (так же, как упоминалось в других случаях в этом потоке), за исключением того, что у вас есть большой объект, это также должно работать - просто убедитесь, что вы построить его в соответствии с вашими потребностями - мне нужно было иметь имя, чем массив

один пользовательский определен для этого, пока мы не сделаем странный метод stringify

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

выход

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

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

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

Уокинге... Простота в использовании

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

спасибо

просто скопируйте и pase

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

вы можете использовать собственную функцию stringify, как это

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

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

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

Если вы хотите получить значение свойств json в строковом формате, используйте следующий способ

var i = {"x":1}

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

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'

определить объект

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

};

затем преобразовать его в строку с помощью этого кода

strObj= JSON.stringify(obj);

чтобы убедиться, что консоль результат

console.log(strObj);

все, что вам нужно, это добавить этот код ниже
var j={"name":"binchen"}; JSON.stringify(j); // '{"name":"binchen"}'

для отладки в узле JS вы можете использовать util.проверьте (). Он лучше работает с круговыми ссылками.

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

вы можете использовать JSON.stringify () функция для этого.

существующие замены JSON, где слишком много для меня, поэтому я написал свою собственную функцию. Это, кажется, работает, но я, возможно, пропустил несколько крайних случаев (которые не происходят в моем проекте). И, вероятно, не будет работать для каких-либо уже существующих объектов, только для собственных данных.

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;
}
So in order to convert a js object to JSON String: 

простой синтаксис для преобразования объекта в строку

JSON.stringify(value)

полный синтаксис: формат JSON.преобразовать в строки(значение[, заменитель [пространство]])

давайте рассмотрим несколько простых примеров. Обратите внимание, что вся строка получает двойные кавычки и все данные в строке экранируются, если необходимый.

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

ты хочешь :

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

в любом случае, если вы хотите качественную печать, вы должны проверить: как я могу pretty-print JSON с помощью JavaScript?

еще проверьте это для получения информации о JSON stringify / parse.

Если у вас есть строка json, и она не обернута [], то сначала оберните ее

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

или

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

Comments

    Ничего не найдено.