জাভাস্ক্রিপ্ট ডেটা ফর্ম্যাটিং / সুন্দর প্রিন্টার


124

আমি pretty printডিবাগিংয়ের জন্য একটি মানব-পঠনযোগ্য ফর্মটিতে জাভাস্ক্রিপ্ট ডেটা স্ট্রাকচারের কোনও উপায় সন্ধান করার চেষ্টা করছি ।

আমার জেএসে একটি বরং বড় এবং জটিল ডেটা স্ট্রাকচার সংরক্ষণ করা হয়েছে এবং এটিকে কাজে লাগাতে আমার কিছু কোড লিখতে হবে। আমি কী করছি এবং কোথায় আমি ভুল করছি সে বিষয়ে কাজ করার জন্য, আমার আসলে যা প্রয়োজন তা হ'ল ডেটা স্ট্রাকচারটি সম্পূর্ণরূপে দেখতে সক্ষম হওয়া এবং যখনই আমি ইউআইয়ের মাধ্যমে পরিবর্তন করি তখন তা আপডেট করে।

এই সমস্ত স্টাফ আমি জাভাস্ক্রিপ্ট ডেটা কাঠামোটিকে মানব-পঠনযোগ্য স্ট্রিংয়ে ফেলার জন্য একটি দুর্দান্ত উপায় খুঁজে ছাড়াও নিজেকে পরিচালনা করতে পারি। JSON করবে, তবে এটিকে সত্যই সুন্দর বিন্যাসিত এবং অভিযুক্ত করা দরকার। আমি সাধারণত এটির জন্য ফায়ারবগের দুর্দান্ত ডিওএম ডাম্পিং স্টাফ ব্যবহার করতাম তবে সত্যই আমার পুরো কাঠামোটি একবারে দেখতে পারা দরকার, যা ফায়ারবাগে সম্ভব হবে বলে মনে হয় না।

কোন পরামর্শ স্বাগত।

আগাম ধন্যবাদ.


উত্তরগুলির সম্পাদনা সম্পর্কে আপনাকে অবহিত করা হয়েছে কিনা তা নিশ্চিত নন। সুতরাং আমি আপনাকে মন্তব্য করতে এই মন্তব্যটি লিখছি যে আমি নিজের সংস্করণ যুক্ত ইন্ডেন্টডাম্প যুক্ত করেছি। :-)
ফিলিহো

দ্রষ্টব্য: JSON.stringify () উত্তরটি বেশ কার্যকর বলে মনে হচ্ছে, যদিও এটি 'উত্তর' হিসাবে গৃহীত নয়।
গুরুএম

আপনি নোডেডাম্প ব্যবহার করে অবজেক্টগুলির একটি চাক্ষুষ এবং স্বজ্ঞাত আউটপুট পেতে পারেন: github.com/ragamufin/nodedump
ragamufin

: একটি কটাক্ষপাত stackoverflow.com/questions/4810841/...
monkeythedev

উত্তর:


31

আমি জেএস অবজেক্টকে পাঠযোগ্য আকারে ডাম্প করার জন্য একটি ফাংশন লিখেছি, যদিও আউটপুটটি ইন্টেন্টেড নয়, তবে এটি যুক্ত করা খুব বেশি কঠিন হওয়া উচিত নয়: আমি লুয়ার জন্য তৈরি একটি থেকে এই ফাংশনটি তৈরি করেছি (যা আরও জটিল complex ) যা এই ইন্ডেন্টেশন সমস্যাটি পরিচালনা করেছে।

এখানে "সরল" সংস্করণটি রয়েছে:

function DumpObject(obj)
{
  var od = new Object;
  var result = "";
  var len = 0;

  for (var property in obj)
  {
    var value = obj[property];
    if (typeof value == 'string')
      value = "'" + value + "'";
    else if (typeof value == 'object')
    {
      if (value instanceof Array)
      {
        value = "[ " + value + " ]";
      }
      else
      {
        var ood = DumpObject(value);
        value = "{ " + ood.dump + " }";
      }
    }
    result += "'" + property + "' : " + value + ", ";
    len++;
  }
  od.dump = result.replace(/, $/, "");
  od.len = len;

  return od;
}

আমি এটিকে কিছুটা উন্নতি করে দেখব।
নোট 1: এটি ব্যবহার করতে, od = DumpObject(something)od.dump ব্যবহার করুন এবং ব্যবহার করুন। উদ্বেগিত হয়েছে কারণ আমি অন্য উদ্দেশ্যে লেন মানটিও (আইটেমের সংখ্যা) চেয়েছিলাম। ফাংশনটি কেবল স্ট্রিংকে ফিরতে এটি তুচ্ছ।
দ্রষ্টব্য 2: এটি রেফারেন্সগুলিতে লুপগুলি পরিচালনা করে না।

সম্পাদনা

আমি ইনডেন্ট করা সংস্করণ তৈরি করেছি।

function DumpObjectIndented(obj, indent)
{
  var result = "";
  if (indent == null) indent = "";

  for (var property in obj)
  {
    var value = obj[property];
    if (typeof value == 'string')
      value = "'" + value + "'";
    else if (typeof value == 'object')
    {
      if (value instanceof Array)
      {
        // Just let JS convert the Array to a string!
        value = "[ " + value + " ]";
      }
      else
      {
        // Recursive dump
        // (replace "  " by "\t" or something else if you prefer)
        var od = DumpObjectIndented(value, indent + "  ");
        // If you like { on the same line as the key
        //value = "{\n" + od + "\n" + indent + "}";
        // If you prefer { and } to be aligned
        value = "\n" + indent + "{\n" + od + "\n" + indent + "}";
      }
    }
    result += indent + "'" + property + "' : " + value + ",\n";
  }
  return result.replace(/,\n$/, "");
}

পুনরাবৃত্তির কলটির সাথে লাইনে আপনার ইন্ডেন্টেশন চয়ন করুন এবং আপনি এটির পরে মন্তব্য করা লাইনে স্যুইচ করে স্টাইলটি বন্ধনীয় করেছেন।

... আমি আপনাকে নিজের সংস্করণ বেত্রাঘাত করতে দেখছি, যা ভাল। দর্শনার্থীদের পছন্দ হবে।


1
আমি পছন্দ করি;) এটি সঠিকভাবে কাজ করতে পারি না তবে আপনি যদি আপত্তি না করেন, আমি নির্লজ্জভাবে ধারণাটি চুরি করব এবং নিজের লেখা লিখব :)
ড্যান

2
এই পদ্ধতির একটি সংক্ষিপ্ত আগমন (JSON.stringify পদ্ধতির সাথে তুলনা করে জেসন পরামর্শ দেয়) এটি বস্তুর অ্যারেগুলি সঠিকভাবে প্রদর্শন করে না। যখন আপনার কাছে অবজেক্টগুলির একটি অ্যারে থাকে এটি [অবজেক্ট অবজেক্ট] হিসাবে প্রদর্শিত হয়।
রায়ান

@ রায়ান: আপনি ব্রাউজারের নেটিভ অবজেক্ট বলতে চাইছেন? হ্যাঁ, আমার কোডটি ফিরে দেখে আমি একটি মন্তব্য যুক্ত করেছি: // একটি ক্ষেত্র যদি কোনও বস্তু হয় তবে খুব খারাপ ... :- আমার পরীক্ষার জন্য এখানে ঠিক আছে ... ব্যবহারকারীর দ্বারা তৈরি কাঠামো ফেলে দেওয়া ঠিক হবে। আমি নীচের বিকল্পগুলি দেখতে পাচ্ছি, যদি আপনার আরও শক্তিশালী কিছু প্রয়োজন হয়।
ফিলিহো

আমি এটি ব্যবহার করতে পারি না। আমি যখন কিছু জেসন ডেটা ফেলে দেওয়ার চেষ্টা করি তখন আমি অসীম লুপ পাই।
নিউনি

1
@ রাফেলডিডিএল এবং ফিলো - সর্বোচ্চ কল স্ট্যাকের আকারটি কোনও ছোট বস্তুতে ট্রিগারও করা যেতে পারে; নিজের কাছে সম্পত্তি রেফারেন্স সহ একটি। এই জাতীয় রেফারেন্স এই ফাংশনটির সাথে অসীম লুপের কারণ হতে পারে।
skibulk

233

ক্রকফোর্ডের JSON.stringify এর মতো ব্যবহার করুন :

var myArray = ['e', {pluribus: 'unum'}];
var text = JSON.stringify(myArray, null, '\t'); //you can specify a number instead of '\t' and that many spaces will be used for indentation...

পরিবর্তনশীল textএইরকম দেখতে হবে:

[
  "e",
   {
      "pluribus": "unum"
   }
]

যাইহোক, এর জন্য জেএস ফাইলের চেয়ে বেশি আর কিছু প্রয়োজন নেই - এটি কোনও লাইব্রেরি ইত্যাদির সাথে কাজ করবে etc.


5
আপনি পেতে যাচ্ছেন এটি প্রায় নিশ্চিতভাবেই সেরা উত্তর। আমি 4 বা 5 নন-প্রোগ্রামারকে JSON.stringified ডেটা স্ট্রাকচার পড়তে এবং সম্পাদনা করতে এবং কনফিগারেশন ফাইলগুলির জন্য এগুলি ব্যাপকভাবে ব্যবহার করতে শিখিয়েছি।
জোয়েল আনায়ার

1
অদ্ভুত যে এটি সমস্যার সৃষ্টি করবে - এটি "জেএসএন" নামটি বিশ্বব্যাপী নেমস্পেসের সাথে পরিচয় করিয়ে দেয়, যাতে আপনার সমস্যার কারণ হতে পারে। সংঘর্ষের অস্তিত্ব আছে কিনা তা দেখার জন্য এটি যোগ করার আগে "জেএসওএন" এর জন্য আপনার নেমস্পেসটি পরীক্ষা করে দেখুন।
জেসন বুটিং 23

1
ঠিক আছে, প্রোটোটাইপ এর মতো মন্দ ...;)
জেসন বুটিং

7
এর উপর ফায়ারফক্স 3.5 এবং তারপরে একটি আপডেট, JSON.stringify অন্তর্নির্মিত। ( বিকাশকারী.মোজিলা.আর.ইন / ইউসিং_জেএসএন_ইন_ফায়ারফক্স ), সুতরাং আপনি যদি ডিবাগিংয়ের উদ্দেশ্যে যদি কেবল কোনও জেএসওএন অবজেক্টটি দেখার চেষ্টা করছেন তবে আপনি অতিরিক্ত জেএস নির্ভরতা ছাড়াই এটি করতে পারেন।
গ্রেগ বার্নহার্ড

3
ক্রোমেও। যাইহোক, জেএসওএন.স্ট্রিংফাই বিজ্ঞপ্তি তথ্য JSON.stringify((function(){var x = []; x.push(x); return x})())এবং অন্যান্য অনেক ধরণের অবজেক্টে ব্যর্থ JSON.stringify(/foo/)
ক্রেজেন জাভিয়ার সিটেকার

21

আপনি নিম্নলিখিত ব্যবহার করতে পারেন

<pre id="dump"></pre>
<script>
   var dump = JSON.stringify(sampleJsonObject, null, 4); 
   $('#dump').html(dump)
</script>

15

ইন Firebug, আপনি কেবল console.debug ("%o", my_object)যদি কনসোলে এটিতে ক্লিক করতে পারেন এবং একটি ইন্টারেক্টিভ অবজেক্ট এক্সপ্লোরার প্রবেশ করতে পারেন। এটি পুরো অবজেক্টটি দেখায় এবং আপনাকে নেস্টেড অবজেক্টগুলি প্রসারিত করতে দেয়।


1
সমস্যাটি হ'ল এটি কেবল 'শীর্ষস্থানীয়' অবজেক্টটি দেখায় - আমি কয়েক ডজন নেস্টেড বস্তু পেয়েছি এবং সত্যিই আমার পুরো বিষয়বস্তু একবারে দেখতে সক্ষম হওয়া দরকার এবং গুরুত্বপূর্ণ বিষয়গুলি দেখুন কোথায় জিনিসগুলি পরিবর্তন হচ্ছে। সুতরাং ফায়ারবাগ সত্যিই এই ক্ষেত্রে আমার জন্য কাজ করে না।
ড্যান

(হ্যাঁ আমি জানি আপনি এগুলি প্রসারিত করতে ক্লিক করতে পারেন, তবে যতবারই 10 বা ততোধিক লিঙ্কগুলি ক্লিক করার সময় আমি ডেটা ডাম্প করতে চাইছি তা এখন যা করছি - খুব ধীর অগ্রগতি)
ড্যান

1
এটি ক্রোমেও কাজ করে (এবং সম্ভবত সাফারিতে সম্ভবত)।
ক্রেজেন জাভিয়ার সিটেকার


9

আপনার অবজেক্টটি দেখার জন্য দুর্দান্ত উপায় খুঁজছেন তাদের জন্য, সুন্দর প্রিন্ট.জেএস পরীক্ষা করুন

আপনার দস্তাবেজের কোথাও মুদ্রণের জন্য কনফিগারযোগ্য দৃশ্যের বিকল্পগুলির সাথে একটি সারণী তৈরি করে। এর চেয়ে দেখতে আরও ভাল console

var tbl = prettyPrint( myObject, { /* options such as maxDepth, etc. */ });
document.body.appendChild(tbl);

এখানে চিত্র বর্ণনা লিখুন


6

আমি প্রোগ্রামিং করছি Rhinoএবং এখানে পোস্ট করা উত্তরগুলির সাথে আমি সন্তুষ্ট নই । সুতরাং আমি আমার নিজস্ব প্রিন্টার লিখেছি:

function pp(object, depth, embedded) { 
  typeof(depth) == "number" || (depth = 0)
  typeof(embedded) == "boolean" || (embedded = false)
  var newline = false
  var spacer = function(depth) { var spaces = ""; for (var i=0;i<depth;i++) { spaces += "  "}; return spaces }
  var pretty = ""
  if (      typeof(object) == "undefined" ) { pretty += "undefined" }
  else if ( typeof(object) == "boolean" || 
            typeof(object) == "number" ) {    pretty += object.toString() } 
  else if ( typeof(object) == "string" ) {    pretty += "\"" + object + "\"" } 
  else if (        object  == null) {         pretty += "null" } 
  else if ( object instanceof(Array) ) {
    if ( object.length > 0 ) {
      if (embedded) { newline = true }
      var content = ""
      for each (var item in object) { content += pp(item, depth+1) + ",\n" + spacer(depth+1) }
      content = content.replace(/,\n\s*$/, "").replace(/^\s*/,"")
      pretty += "[ " + content + "\n" + spacer(depth) + "]"
    } else { pretty += "[]" }
  } 
  else if (typeof(object) == "object") {
    if ( Object.keys(object).length > 0 ){
      if (embedded) { newline = true }
      var content = ""
      for (var key in object) { 
        content += spacer(depth + 1) + key.toString() + ": " + pp(object[key], depth+2, true) + ",\n" 
      }
      content = content.replace(/,\n\s*$/, "").replace(/^\s*/,"")
      pretty += "{ " + content + "\n" + spacer(depth) + "}"
    } else { pretty += "{}"}
  }
  else { pretty += object.toString() }
  return ((newline ? "\n" + spacer(depth) : "") + pretty)
}

আউটপুটটি দেখতে এটির মতো দেখাচ্ছে:

js> pp({foo:"bar", baz: 1})
{ foo: "bar",
  baz: 1
}
js> var taco
js> pp({foo:"bar", baz: [1,"taco",{"blarg": "moo", "mine": "craft"}, null, taco, {}], bleep: {a:null, b:taco, c: []}})
{ foo: "bar",
  baz: 
    [ 1,
      "taco",
      { blarg: "moo",
        mine: "craft"
      },
      null,
      undefined,
      {}
    ],
  bleep: 
    { a: null,
      b: undefined,
      c: []
    }
}

ভবিষ্যতে যে কোনও পরিবর্তন প্রয়োজন হতে পারে তার জন্য আমি এখানে এটি একটি সংক্ষিপ্ত হিসাবে পোস্ট করেছি ।


7
এটি একটি দুর্দান্ত মুদ্রক হতে পারে তবে কোডটি আসলে খুব সুন্দর দেখাচ্ছে না :)
Xion

3

jsDump

jsDump.parse([
    window,
    document,
    { a : 5, '1' : 'foo' },
    /^[ab]+$/g,
    new RegExp('x(.*?)z','ig'),
    alert, 
    function fn( x, y, z ){
        return x + y; 
    },
    true,
    undefined,
    null,
    new Date(),
    document.body,
    document.getElementById('links')
])

হয়ে

[
   [Window],
   [Document],
   {
      "1": "foo",
      "a": 5
   },
   /^[ab]+$/g,
   /x(.*?)z/gi,
   function alert( a ){
      [code]
   },
   function fn( a, b, c ){
      [code]
   },
   true,
   undefined,
   null,
   "Fri Feb 19 2010 00:49:45 GMT+0300 (MSK)",
   <body id="body" class="node"></body>,
   <div id="links">
]

QUnit (ইউনিট-পরীক্ষার jQuery এর দ্বারা ব্যবহৃত ফ্রেমওয়ার্ক) jsDump সামান্য patched সংস্করণ ব্যবহার।


JSON.stringify () কিছু ক্ষেত্রে সেরা পছন্দ নয়।

JSON.stringify({f:function(){}}) // "{}"
JSON.stringify(document.body)    // TypeError: Converting circular structure to JSON

2

ফিলফোর নেতৃত্ব (অনেক ধন্যবাদ :)) নিয়ে, আমি আমার নিজের লেখাটি শেষ করলাম কারণ আমি যা চাই তা করতে তার পক্ষে বেশিরভাগই পাইনি। এটি বেশ রুক্ষ এবং প্রস্তুত, তবে এটি আমার প্রয়োজনীয় কাজটি করে। চমৎকার পরামর্শের জন্য আপনাকে সকলকে ধন্যবাদ।

এটি উজ্জ্বল কোড নয়, আমি জানি, তবে এটির মূল্য কী, এটি এখানে। কেউ এটি দরকারী মনে হতে পারে:

// Usage: dump(object)
function dump(object, pad){
    var indent = '\t'
    if (!pad) pad = ''
    var out = ''
    if (object.constructor == Array){
        out += '[\n'
        for (var i=0; i<object.length; i++){
            out += pad + indent + dump(object[i], pad + indent) + '\n'
        }
        out += pad + ']'
    }else if (object.constructor == Object){
        out += '{\n'
        for (var i in object){
            out += pad + indent + i + ': ' + dump(object[i], pad + indent) + '\n'
        }
        out += pad + '}'
    }else{
        out += object
    }
    return out
}

1
যাইহোক, আপনি পারলেও, আপনার কোনও সেমিকোলন ছাড়া লাইনগুলি শেষ করা উচিত নয়। এছাড়াও, __ যদি (! প্যাড) প্যাড = '' __ করার মানক পদ্ধতিটি হ'ল: __ প্যাড = (প্যাড || '') __
জেসন বুটিং

আমি আপনার বক্তব্যটি যদি (! Foo) foo = ... বনাম foo = (foo || ...) এর দিকে নিয়ে যাই তবে সেমিকোলনগুলির সাথে সমস্ত লাইন শেষ করার যুক্তি কী?
ড্যান

1
আপনি ভাষার কিছু কদর্য আইডিসিক্রেন্সিগুলিতে চলে যাবেন আপনি যদি উল্লেখ না করেন তবে আপনি সহজেই আপনার কোডটি ছোট করতে সক্ষম হবেন না (যদি আপনি যে ক্ষুদ্রাকৃতিটি ব্যবহার করেন তবে আপনার জন্য সেমিকোলনগুলিকে আটকে রাখতে যথেষ্ট ভাল না)। আরও তথ্যের জন্য stackoverflow.com/questions/42247 দেখুন ।
জেসন বুটিং 23

1
if (! প্যাড) প্যাড = ''; প্যাড = (প্যাড || '') এর চেয়ে সস্তা, আরও নমনীয় এবং আরও পঠনযোগ্য; এক মিনিটের পরিমাণে হলেও যদি আপনি সেই ফর্মটির জন্য জেদ করেন, বহিরাগত বন্ধনী অপসারণ করুন। প্যাড = প্যাড || ''; সেমিকোলনগুলির জন্য তিনটি কারণ: জেএস অটো-এন্ড-লাইন সেমিকোলনগুলি সন্নিবেশ করে যখন দেখে যে এগুলি বাদ দেওয়া কোনও ত্রুটি ছুঁড়ে ফেলবে। 1) এটি নিজেকে যুক্ত করার চেয়ে দু: খজনক কিছুটা ধীর করে তোলে এবং 2) যখন পরবর্তী লাইনে সংযুক্ত হওয়ার সময় ত্রুটি না ঘটায় তখন ত্রুটি হতে পারে। 3) আপনার কোড ক্ষুদ্রতর হতে বাধা দেবে।
স্যামগুডি

1

এটি সত্যিই জেসন বুটিংয়ের "ব্যবহার ক্রকফোর্ডের জেএসএন.স্ট্রিংফাই" -র একটি মন্তব্য, তবে আমি সেই উত্তরে কোনও মন্তব্য যুক্ত করতে পারিনি।

মন্তব্যে উল্লিখিত হিসাবে, JSON.stringify প্রোটোটাইপ (www.prototypejs.org) লাইব্রেরির সাথে ভাল খেলছে না। যাইহোক, সাময়িকভাবে অ্যারে.প্রোটোটাইপ.টোজেসন পদ্ধতিটি প্রোটোটাইপ যুক্ত করে ক্রোকফোর্ডের স্ট্রিংফাই () চালান, তারপরে এটিকে আবার পিছনে রেখে তাদের একত্রে ভাল খেলতে পারা মোটামুটি সহজ:

  var temp = Array.prototype.toJSON;
  delete Array.prototype.toJSON;
  $('result').value += JSON.stringify(profile_base, null, 2);
  Array.prototype.toJSON = temp;

1

আমি ভেবেছিলাম জেএসওন স্ট্রিংফাই ব্যবহার করার বিষয়ে জে বুটিংস প্রতিক্রিয়াটিও ভাল ছিল। যদি আপনি YUI ব্যবহার করে থাকেন তবে আপনি YUI JSON অবজেক্টের মাধ্যমে JSON.stringify ব্যবহার করতে পারেন aside আমার ক্ষেত্রে আমার এইচটিএমএল ডাম্প করা দরকার যাতে ফিলিংহ প্রতিক্রিয়াটি কেবল টুইঙ্ক / কাট / পেস্ট করা সহজ ছিল।

function dumpObject(obj, indent) 
{
  var CR = "<br />", SPC = "&nbsp;&nbsp;&nbsp;&nbsp;", result = "";
  if (indent == null) indent = "";

  for (var property in obj)
  {
    var value = obj[property];

    if (typeof value == 'string')
    {
      value = "'" + value + "'";
    }
    else if (typeof value == 'object')
    {
      if (value instanceof Array)
      {
        // Just let JS convert the Array to a string!
        value = "[ " + value + " ]";
      }
      else
      {
        var od = dumpObject(value, indent + SPC);
        value = CR + indent + "{" + CR + od + CR + indent + "}";
      }
    }
    result += indent + "'" + property + "' : " + value + "," + CR;
  }
  return result;
}

1

এই থ্রেডে কোড লেখার প্রচুর লোক, বিভিন্ন গোটে সম্পর্কে অনেক মন্তব্য। আমি এই সমাধানটি পছন্দ করেছি কারণ এটি সম্পূর্ণ বলে মনে হয়েছিল এবং কোনও একক ফাইল যা কোনও নির্ভরতা ছাড়াই ছিল।

ব্রাউজার

nodejs

এটি "বাক্সের বাইরে" কাজ করেছে এবং এতে নোড এবং ব্রাউজার উভয় সংস্করণ রয়েছে (সম্ভবত পৃথকভাবে আলাদা আলাদা মোড়ক দেওয়া হয়েছে তবে আমি এটি নিশ্চিত করতে খনন করি না)।

লাইব্রেরি এক্সএমএল, এসকিউএল এবং সিএসএসের প্রিন্টিংয়েও সমর্থন করে তবে আমি এই বৈশিষ্ট্যগুলি চেষ্টা করি নি।


0

উপাদানগুলি স্ট্রিং হিসাবে মুদ্রণের জন্য একটি সহজ:

var s = "";
var len = array.length;
var lenMinus1 = len - 1
for (var i = 0; i < len; i++) {
   s += array[i];
   if(i < lenMinus1)  {
      s += ", ";
   }
}
alert(s);

0

আমার NeatJSON লাইব্রেরিতে রুবি এবং জাভাস্ক্রিপ্ট উভয় সংস্করণ রয়েছে । এটি (অনুমতিপ্রাপ্ত) এমআইটি লাইসেন্সের অধীনে অবাধে উপলব্ধ। আপনি এখানে একটি অনলাইন ডেমো / রূপান্তরকারী দেখতে পারেন:
http://phrogz.net/JS/neatjson/neatjson.html

কিছু বৈশিষ্ট্য (সমস্ত alচ্ছিক):

  • একটি নির্দিষ্ট প্রস্থে মোড়ানো; যদি কোনও বস্তু বা অ্যারে লাইনে ফিট করতে পারে তবে এটি একটি লাইনে রাখা হবে।
  • কোনও বস্তুর সমস্ত কীগুলির জন্য কলোনগুলি সারিবদ্ধ করুন।
  • কোনও বস্তুর কীগুলি বর্ণমালা অনুসারে বাছাই করুন।
  • দশমিকের নির্দিষ্ট সংখ্যায় ভাসমান পয়েন্ট সংখ্যা বিন্যাস করুন।
  • মোড়ানোর সময়, একটি 'সংক্ষিপ্ত' সংস্করণ ব্যবহার করুন যা অ্যারে এবং অবজেক্টগুলির জন্য প্রথম / শেষ মান হিসাবে একই লাইনে খোলা / বন্ধ বন্ধনী রাখবে।
  • দানাদার পদ্ধতিতে অ্যারে এবং অবজেক্টের জন্য সাদা স্থান নিয়ন্ত্রণ করুন (বন্ধনীগুলির ভিতরে, কোলন এবং কমা আগে / পরে)।
  • ওয়েব ব্রাউজারে এবং একটি Node.js মডিউল হিসাবে কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.