AngularJS ফর্ম্যাট JSON স্ট্রিং আউটপুট


92

আমার একটি অ্যাঙ্গুলারজেএস অ্যাপ্লিকেশন রয়েছে, যা ইনপুট থেকে ডেটা সংগ্রহ করে, একটি মডেলকে স্ট্রিংয়ে রূপান্তর করে ব্যবহার করে JSON.stringify()কোনও ব্যবহারকারীকে এই মডেলটি এমনভাবে সম্পাদনা করতে দেয় যে <textarea>উপাদানটি আপডেট করা হয় এবং বিপরীতভাবে ইনপুট ক্ষেত্রগুলি আপডেট হয় updated একরকম দ্বিমুখী বাঁধাই :)

সমস্যাটি হ'ল স্ট্রিংটি নিজেই কুৎসিত লাগে এবং আমি এটি ফর্ম্যাট করতে চাই তাই এটি দেখতে এটির মতো দেখাচ্ছে:

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

এখন দেখতে যেমন লাগে না তেমন:

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

কোনও ধারণা কীভাবে এটি সম্পাদন করা যায়? আপনার যদি কিছু অতিরিক্ত তথ্য প্রয়োজন হয় - জিজ্ঞাসা করতে দ্বিধা করবেন না। প্রতিটি উত্তর অত্যন্ত প্রশংসা করা হয় এবং সঙ্গে সঙ্গে উত্তর দেওয়া হয়।

ধন্যবাদ.

PS আমার ধারণা এটি কোনওরকম নির্দেশিকা বা কাস্টম ফিল্টার হওয়া উচিত। ডেটা নিজেই পরিবর্তন করা উচিত নয়, কেবল আউটপুট।


4
আপনি কি এটি চেষ্টা করে দেখতে পারেন - টেক্সটরিয়ায়, এন্টার টিপুন এবং ফলস্বরূপ স্ট্রিংকে পছন্দ মতো ফর্ম্যাট করুন। তারপরে আপনার $watch(পূর্ববর্তী প্রশ্নের উত্তরের উপর ভিত্তি করে) টেক্সারিয়া মডেলটি ধরে আপনি কী করতে পারেন?console.log() কী করতে পারেন এবং এন্টার কীটির জন্য স্ট্রিংয়ে আপনি কী মান অর্জন করতে পারেন তা - আমি মনে করি এটি "/ n"
কলমেখাট্টি

4
এর উপর ভিত্তি করে, আমি পরামর্শ দিতে পারি আপনি কীভাবে
পাঠ্যটির

an "অ্যাঙ্করপজিশন": "1", "অসুবিধা": "1", "অন্তর্ভুক্তকেন্দ্র": "1", "প্রশ্নসমাউন্ট": "1"}
amenoire

স্ট্রিং গঠনের পরে মূলত কিছুই পরিবর্তন হয়নি।
amenoire

নীচে উত্তর দেখুন - তারা সাহায্য করে?
কলমেকাট্টি

উত্তর:


66

আপনি একটি alচ্ছিক পরামিতি ব্যবহার করতে পারেন JSON.stringify()

JSON.stringify(value[, replacer [, space]])

পরামিতি

  • মান JSON স্ট্রিংয়ে রূপান্তর করতে মান।
  • replacer যদি একটি ফাংশন, স্ট্রিংফাই করার সময় সম্মুখীন হওয়া মান এবং বৈশিষ্ট্যগুলিকে রূপান্তর করে; যদি একটি অ্যারে হয় তবে চূড়ান্ত স্ট্রিংয়ের অবজেক্টগুলিতে অন্তর্ভুক্ত বৈশিষ্ট্যের সেট নির্দিষ্ট করে। নেতিবাচক JSON ব্যবহার করে জাভা স্ক্রিপ্ট গাইড নিবন্ধে রেপ্লারার ফাংশনটির বিশদ বিবরণ সরবরাহ করা হয়েছে।
  • স্থান ফলাফল স্ট্রিংটি বেশ মুদ্রিত হওয়ার কারণ দেয়।

উদাহরণ স্বরূপ:

JSON.stringify({a:1,b:2,c:{d:3, e:4}},null,"    ")

আপনাকে নিম্নলিখিত ফলাফল দেবে:

"{
    "a": 1,
    "b": 2,
    "c": {
        "d": 3,
        "e": 4
    }
}"

4
নোট করুন যে এটি $$hashKeyঅভ্যন্তরীণ মডেল ট্র্যাকিংয়ের জন্য সম্পত্তির কৌণিক ব্যবহারগুলি সংরক্ষণ করে
পিক্সনবিটস

4
আপনি JSON.stringify(object, null, 2)যেখানে করতে পারেন সেখানে 2 হল সাদা স্পেস অক্ষরের সংখ্যা।
মিঃই

@ লুকাসজ, আমি কি $$ হাশকি এড়াতে পারি?
মোঃ আসলাম

434

কৌণিক একটি বিল্ট-ইন করেছেন filterদেখানোর জন্যJSON

<pre>{{data | json}}</pre>

preসাদা স্থান এবং লাইন ব্রেকগুলি সংরক্ষণ করার জন্য -ট্যাগ ব্যবহার নোট করুন Note

ডেমো:

angular.module('app', [])
  .controller('Ctrl', ['$scope',
    function($scope) {

      $scope.data = {
        a: 1,
        b: 2,
        c: {
          d: "3"
        },
      };

    }
  ]);
<!DOCTYPE html>
<html ng-app="app">

  <head>
    <script data-require="angular.js@1.2.15" data-semver="1.2.15" src="//code.angularjs.org/1.2.15/angular.js"></script>
  </head>

  <body ng-controller="Ctrl">
    <pre>{{data | json}}</pre>
  </body>

</html>

একটি angular.toJsonপদ্ধতিও আছে, তবে আমি ( ডক্স ) এর সাথে খেলিনি


4
হ্যাঁ, আমি এটি ইতিমধ্যে জানি। তবে আমি এই ফিল্টারটি তৈরি করতে পারি না কারণ টেক্সেরিয়া নিজেই একটি মডেল।
aenoire

এটি এত সহজ, তবুও দরকারী: ডি
জ্যামি স্ট্রিট

4
@ ra170 পুরো প্রশ্নটি কেবল শিরোনাম নয়, মনোযোগ সহকারে পড়তে দয়া করুন। আমি একটি সাধারণ জসন ফিল্টারের চেয়ে কিছুটা আলাদা জিনিস চাইছিলাম।
অ্যামেনোয়ার

মনে রাখবেন যে আপনার <pre>ট্যাগে white-spaceসম্পত্তি সেট করা normalবা থাকা উচিত নয় no-wrap। অন্যথায়, আপনার JSON আপনি চান তেমন অভিযুক্ত হবে না।
ফলকোনপল

4
আমার সমস্যা হচ্ছিল তবে <<> ছাড়া করছিলাম .... আমি এই উত্তরটি দেখেছি এবং ঠিক করেছি .... ধন্যবাদ !!
লুকাস 14

23

আপনি যদি জেএসএন কে এইচটিএমএল হিসাবে রেন্ডার করতে খুঁজছেন এবং এটি ধসে / খোলা যেতে পারে তবে আপনি এই নির্দেশটি সুন্দরভাবে রেন্ডার করার জন্য ব্যবহার করতে পারেন:

https://github.com/mohsen1/json-formatter/

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


11

ছাড়াও কৌণিক jsonফিল্টার ইতিমধ্যে উল্লেখ করা হয়েছে, রয়েছে কৌণিক toJson()ফাংশন

angular.toJson(obj, pretty);

এই ফাংশনের দ্বিতীয় প্যারাম আপনাকে সুন্দর মুদ্রণটি স্যুইচ করতে এবং ব্যবহারের জন্য স্পেসের সংখ্যা নির্ধারণ করতে দেয়।

যদি সত্য হিসাবে সেট করা থাকে, JSON আউটপুটে নতুন লাইন এবং সাদা স্থান থাকবে। যদি কোনও পূর্ণসংখ্যকে সেট করা থাকে, JSON আউটপুটটিতে প্রতি ইন্ডেন্টেশনের জন্য অনেকগুলি স্পেস থাকবে।

(ডিফল্ট: 2)


আমার পৃষ্ঠাটি অবরুদ্ধ করা হয়েছে যখন আমি তাকে 1000 অবজেক্টের একটি অ্যারে
দিই

Youvariable = কৌণিক.টোজসন ...., আপনি যেমন লিখেছেন, ফলাফলটি দেখতে বেশ সুন্দর দেখাচ্ছে
মারসিও রোসাতো

6

আমি অনুমান করি আপনি json পাঠ্য সম্পাদনা করতে ব্যবহার করতে চান। তারপরে আপনি ivarni এর উপায় ব্যবহার করতে পারেন:

। {তথ্য | জসন}}
এবং করতে একটি অ্যাডিশন বৈশিষ্ট্য যুক্ত করুন
 সম্পাদনাযোগ্য

<pre contenteditable="true">{{data | json}}</pre>

আশা করি এটি আপনাকে সহায়তা করতে পারে।


2

আপনি যদি JSON ফর্ম্যাট করতে এবং কিছু বাক্য গঠন হাইলাইট করতে চান তবে আপনি ng-prettyjsonনির্দেশটি ব্যবহার করতে পারেন । এনপিএম প্যাকেজ দেখুন।

এটি কীভাবে ব্যবহার করবেন তা এখানে: <pre pretty-json="jsonObject"></pre>

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