إذا قمت بتعريف كائن في JS باستخدام:
var j={"name":"binchen"};
كيف يمكنني تحويل الكائن إلى JSON؟ يجب أن تكون سلسلة الإخراج:
'{"name":"binchen"}'
جميع المتصفحات الحالية لديها دعم 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 () الآن بتحرير السلسلة إذا عثرت على أي تعليمات برمجية ضارة فيها. لمزيد من الأمان: لا تقم بتعيين إشارة includeFunctions على true.
كتب دوغلاس كروكفورد ، والد مفهوم JSON ، واحدًا من أوائل مصممي الجافا سكريبت. كتب ستيف ين في وقت لاحق من تريم باث نسخة محسنة من نيس استخدمتها لبعض الوقت. إنها التغييرات التي أجريتها على إصدار ستيف التي أود مشاركتها معك. في الأساس لقد انبثقت عن رغبتي في جعل صانع الألعاب:
• handle and restore cyclical references • include the JavaScript code for functions/methods (as an option) • exclude object members from Object.prototype if needed.
يمكنك استخدام JSON.stringify () طريقة لتحويل كائن JSON إلى سلسلة.
var j={"name":"binchen"};
JSON.stringify(j)
بالنسبة للعملية العكسية ، يمكنك استخدام JSON.parse () method لتحويل JSON String إلى JSON Object.
Json Stringify يمكن تحويل كائن 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.
جميلة (اختياري):
إذا تم تعيينه على صواب ، فسيحتوي خرج JSON على خطوط جديدة ومسافة بيضاء. إذا تم تعيينه على عدد صحيح ، فسيحتوي خرج JSON على العديد من المسافات لكل مسافة بادئة.
(الافتراضي: 2)
JSON.stringify(j,null,4)
ستمنحك JSON الجميل في حال كنت بحاجة إلى تجميل أيضًا
JSON.stringify
يحول كائن Javascript إلى نص JSON ويخزن نص JSON في سلسلة.
التحويل هو كائن إلى سلسلة
JSON.parse
تحول سلسلة من نص JSON إلى كائن Javascript.
التحويل هو سلسلة إلى كائن
var j={"name":"binchen"};
لجعله سلسلة JSON التالية يمكن استخدامها.
JSON.stringify({"key":"value"});
JSON.stringify({"name":"binchen"});
لمزيد من المعلومات ، يمكنك الرجوع إلى هذا الرابط أدناه.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
عرف واحد مخصص لهذا ، حتى نفعل غريبة من طريقة 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);
OUTPUT
{"name":"binchen","class":"awesome"}
كنت أواجه مشكلات تتعلق بنفاد الذاكرة ونفّذ حلول أخرى لا يبدو أنها تعمل (على الأقل لم أستطع دفعهم إلى العمل) وهو عندما تعثرت في هذا الموضوع. بفضل روهيت كومار أنا مجرد تكرار من خلال كائن 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 سلسلة تمثيلك (كما هو مذكور في الأوقات الأخرى في هذا الموضوع) إلا إذا كان لديك كائن كبير ، يجب أن يعمل هذا أيضًا - فقط تأكد من تصميمه ليناسب احتياجاتك - احتجت إليه للحصول على اسم من مجموعة
var someObj = { "name" : "some name" };
var someObjStr = JSON.stringify(someObj);
console.log( someObjStr );
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
});
شكر
تحديد الكائن
let obj = {
"firstname" : "Hello",
"lastname" : "javascript"
};
ثم تحويله إلى سلسلة باستخدام هذا الرمز
strObj= JSON.stringify(obj);
للتأكد من وحدة التحكم النتيجة
console.log(strObj);
So in order to convert a js object to JSON String:
بناء الجملة البسيط لتحويل كائن إلى سلسلة هو
JSON.stringify(value)
بناء الجملة الكامل هو: JSON.stringify (value [، replacer [، space]])
دعنا نرى بعض الأمثلة البسيطة. لاحظ أن السلسلة بأكملها تحصل على علامات تنصيص مزدوجة وسيتم إفلات جميع البيانات الموجودة في السلسلة إذا لزم الأمر.
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"}"*/
إذا كنت ترغب في الحصول على قيمة خصائص 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}'
بدائل JSON الحالية حيث الكثير بالنسبة لي ، لذلك كتبت وظيفتي الخاصة. يبدو أن هذا الأمر ناجح ، لكن ربما فاتني العديد من حالات Edge (التي لا تحدث في مشروعي). ومن المحتمل ألا يعمل مع أي كائنات موجودة مسبقًا ، فقط للبيانات التي يتم إعدادها ذاتيًا.
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;
}
يمكنك استخدام وظيفة stringify الأصلي مثل هذا
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
يمكنك استخدام JSON.stringify (j) والتي ستحول ملف JSON إلى سلسلة.
كل ما تحتاجه هو إضافة هذا الرمز أدناهvar j={"name":"binchen"}; JSON.stringify(j); // '{"name":"binchen"}'
يمكنك استخدام وظيفة JSON.stringify () للقيام بذلك.
var j={"name":"binchen"};
var x= json.stirngify(j);
سيقوم هذا بتحويلJSONكائن إلى Stingified كائن
ل طريقة واحدة ملزمة يمكنك القيام بذلك في هتمل
<span>{{j|json}}</span>
لتصحيح الأخطاء في Node JS ، يمكنك استخدام util.inspect () . يعمل بشكل أفضل مع المراجع الدائرية.
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
JSON.strigify()
هي أفضل ممارسة لذلك.
var x = {
"name" : "name1",
"age" : 20
};
var json = JSON.stringify(x);
console.log(json);