JSON এ একাধিক স্ট্রিং


655

আমি JSON ফর্ম্যাটে কিছু ডেটা ফাইল লিখছি এবং একাধিক লাইনে কিছু দীর্ঘ স্ট্রিংয়ের মান বিভক্ত করতে চাই। পাইথনের জেএসওএন মডিউল ব্যবহার করে আমি ব্যবহার করি \বা \nপালানো হিসাবে পুরোপুরি ত্রুটি পাই ।

জেএসএনে মাল্টি-লাইন স্ট্রিং থাকা কি সম্ভব? এটি বেশিরভাগ ভিজ্যুয়াল স্বাচ্ছন্দ্যের জন্য তাই আমি মনে করি আমি কেবল আমার সম্পাদকটিতে শব্দ মোড়ানো চালু করতে পারি, তবে আমি কেবল কৌতুহলী ...



1
আপনার ডেটা কাঠামো করুন: মাল্টলাইন স্ট্রিংটিকে একটি স্ট্রিংয়ের অ্যারে বিভক্ত করুন এবং তারপরে তাদের সাথে যোগ দিন।
রুবিট মঙ্গলবারডোনো

2
Hjson সরঞ্জাম ব্যবহার করে দেখুন। এটি আপনার মাল্টলাইন স্ট্রিংটিকে জসনকে উপযুক্ত জসন-ফর্ম্যাটে রূপান্তর করবে।
গৌরব

উত্তর:


401

জেএসএন সত্যিকারের লাইন-ব্রেকগুলিকে অনুমতি দেয় না। আপনার সমস্ত লাইন ব্রেকগুলি প্রতিস্থাপন করতে হবে \n

উদাহরণ:

"first line second line"

এর সাথে সংরক্ষণ করা যায়:

"first line\nsecond line"

বিঃদ্রঃ:

কারণ Python, এটি এই হিসাবে লেখা উচিত:

"first line\\nsecond line"

\\ব্যাকস্ল্যাশ থেকে বাঁচার জন্য কোথায় , অন্যথায় অজগর \nনিয়ন্ত্রণ চরিত্র "নতুন লাইন" হিসাবে বিবেচনা করবে


88
-1 ওপি হয় "\ N" পালাবার ক্রম ব্যবহার করে। এটি কাজ করছে না কারণ তারা "\\ n" হিসাবে ব্যাকস্ল্যাশ থেকে বাঁচছে না , সুতরাং জেএসএন-র প্রয়োজন অনুসারে পাইথন আক্ষরিকভাবে একটি ব্যাকস্ল্যাশকে অনুসরণ করার পরিবর্তে একটি নতুন লাইনের চরিত্রে রূপান্তর করছে।
ব্যবহারকারী 359996

6
@ ব্যবহারকারী 359996 আমি নিশ্চিত যে এটি সত্য। আমার জন্য (জাস্টস মধ্যে ডেটা সংরক্ষণ \nএবং স্রেসের মাধ্যমে এটি আউটপুট করে), \nঠিক আছে বলে মনে হচ্ছে। এটি ভিউ / রেন্ডারিং ইঞ্জিনের উপর নির্ভর করে, মনে হয়।
ashes999

2
NEWLINE সিকোয়েন্স প্রকৃতপক্ষে প্ল্যাটফর্ম-নির্দিষ্ট (Cf. হয় en.wikipedia.org/wiki/Newline#Representations )। তবে, অরবিটের উত্তরে @ লাইটনেস রেস প্রতি, কার্সার-রিটার্ন বা লাইন-ফিড অক্ষরগুলি জেএসএন ব্যাকরণে নেই। আমি আসলে পাইথন প্রোগ্রামার নই, সুতরাং আপনার ক্ষেত্রে কী ঘটছে তা আমি নিশ্চিত নই, তবে হয় আপনার পার্সারটি নষ্ট হয়েছে বা আপনি যা মনে করছেন তা পেরিয়ে যাচ্ছেন না। হতে পারে এই উত্তরটি আরও ভালভাবে ব্যাখ্যা করেছে: stackoverflow.com/a/9295597/359996 । বিশেষত ডাবল পলায়নের বিষয়ে বিটটি নোট করুন।
ব্যবহারকারী 359996

5
@ নাওয়াজ: "\ n" এবং "\ r" হ'ল যথাক্রমে লাইনফিড এবং ক্যারেজ ফেরার জন্য পালানোর সিকোয়েন্স । এগুলি আক্ষরিক লাইনফিড এবং ক্যারেজ-রিটার্ন নিয়ন্ত্রণের অক্ষর নয় । এটি আরও স্পষ্ট করার অতিরিক্ত উদাহরণ হিসাবে বিবেচনা করুন যে আক্ষরিক ব্যাকস্ল্যাশের বিপরীতে ব্যাকস্ল্যাশের জন্য "\\" হ'ল একটি পালানোর অনুক্রম । জেএসওএন ব্যাকরণটি স্পষ্টভাবে নিয়ন্ত্রণের অক্ষরগুলি (সিএফ। "চর" সংজ্ঞা) বাদ দেয় এবং পরিবর্তে তাদের পালানোর অনুক্রমের (\\, \ r,, n ইত্যাদি) উপস্থাপনের ব্যবস্থা করে।
ব্যবহারকারী 359996

2
@ ব্যবহারকারী 359996: হ্যাঁ .. আমি পরে দেখেছি, যদিও আমি আমার পুরানো মন্তব্যটি যেমন রাখছি, যদি অন্য কেউ একই সন্দেহ নিয়ে আসে তবে আমাদের আলোচনা তাদের সহায়তা করতে পারে। এটি নিশ্চিত করার জন্য ধন্যবাদ বিটিডাব্লু
নওয়াজ

197

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

{
 "modify_head": [

  "<script type='text/javascript'>",
  "<!--",
  "  function drawSomeText(id) {",
  "  var pjs = Processing.getInstanceById(id);",
  "  var text = document.getElementById('inputtext').value;",
  "  pjs.drawText(text);}",
  "-->",
  "</script>"

 ],

 "modify_body": [

  "<input type='text' id='inputtext'></input>",
  "<button onclick=drawSomeText('ExampleCanvas')></button>"

 ],
}

এটি আমার কাছে বেশ ঝরঝরে দেখায়, এটি থেকে শুরু করে আমাকে সর্বত্র ডাবল কোট ব্যবহার করতে হবে। যদিও অন্যথায়, আমি, সম্ভবত, ওয়াইএএমএল ব্যবহার করতে পারতাম, তবে এতে অন্যান্য অসুবিধা রয়েছে এবং এটি স্থানীয়ভাবে সমর্থনযোগ্য নয় not একবার পার্স, আমি শুধু ব্যবহার myData.modify_head.join('\n')বা myData.modify_head.join(), উপরে কিনা আমি প্রতিটি স্ট্রিং বা না পরে একটি লাইন বিরতি চান নির্ভর করে।


40
এটি কোনও নির্দিষ্ট সেটিংয়ের জন্য সমাধান, এটি অবশ্যই প্রশ্নের সাথে সম্পর্কিত নয়। আপনি এখানে যা তৈরি করেন তাতে মাল্টলাইন স্ট্রিং নেই (যা কোনওভাবেই সম্ভব নয়), তবে ভিতরে স্ট্রিং সহ অ্যারেগুলি রয়েছে
স্যামুয়েল রিভাস

3
এটি স্ট্রিংগুলিতে কীভাবে নতুন লাইন sertোকানো যায় তা দেখায়, যা প্রশ্নের উত্তর দেয় না। এই উত্তর দেয়।
fgrieu

1
fgrieu - একটি নতুন লাইন যুক্ত না করেই সহজেই স্ট্রিংগুলি সহজেই যুক্ত করতে পারে। এই ছোট পরিবর্তনের সাথে, এটি মাল্টলাইন স্ট্রিংগুলির (যেমন আপনি JSON স্কিমা নির্দিষ্টকরণের নিয়ন্ত্রণে রয়েছেন) এর জন্য একটি কার্যকারিতা সরবরাহ করে। আমি এটি দিয়ে উত্তরটি উন্নত করার চেষ্টা করব।
ড্রবব

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

JSON উদ্ভাবকের সংরক্ষণের পরেও, আমি সম্ভবত এই সম্ভাব্য ভবিষ্যতের রক্ষণাবেক্ষণকারী যিনি আমার ছোট JSON ফাইলটি সম্পাদনা করতে পারেন তার জন্য মন্তব্য যুক্ত করার জন্য (জাভাস্ক্রিপ্ট অংশটি ছাড়াই, তবে কেবল [] এবং কমা) মন্তব্য যুক্ত করার জন্য এটি ব্যবহার করেছি।
ঘূর্ণি মন

116

দুর্ভাগ্যক্রমে এখানে বেশিরভাগ উত্তর কীভাবে স্ট্রিং ডেটাতে একটি নতুন লাইনের চরিত্র রাখবেন এই প্রশ্নে সম্বোধন করে। কোডটি একাধিক লাইনে স্ট্রিংয়ের মানকে বিভক্ত করে কোডটিকে কী সুন্দর দেখায় তা প্রশ্ন। (এবং এটির স্বীকৃতিযুক্ত উত্তরগুলি "সমাধানগুলি" সরবরাহ করে যা মান্য করে যে কোনও একটি উপাত্ত উপস্থাপনা পরিবর্তন করতে পারে যা অনেক ক্ষেত্রেই তা নয় is)

এবং সবচেয়ে খারাপ খবরটি, এর কোনও ভাল উত্তর নেই।

অনেক প্রোগ্রামিং ভাষায়, এমনকি যদি তারা স্পষ্টভাবে লাইন জুড়ে বিভাজন স্ট্রিং সমর্থন না করে, আপনি এখনও পছন্দসই প্রভাব পেতে স্ট্রিং সংক্ষিপ্তকরণ ব্যবহার করতে পারেন; আর যতক্ষণ না সংকলকটি ভয়ঙ্কর নয় ততক্ষণ এটি ঠিক।

তবে জসন কোনও প্রোগ্রামিং ভাষা নয়; এটি কেবল একটি উপাত্ত উপস্থাপনা। আপনি এটি স্ট্রিং কনটেনেট করতে বলতে পারবেন না। বা এর (মোটামুটি ছোট) ব্যাকরণে একাধিক লাইনে স্ট্রিং উপস্থাপনের জন্য কোনও সুবিধা অন্তর্ভুক্ত নয়।

কোনও প্রকারের একটি প্রসেসর তৈরির সংক্ষিপ্ততা (এবং আমি এই সমস্যার সমাধানের জন্য কার্যকরভাবে নিজের ভাষা তৈরি করার মতো মনে করি না), এই সমস্যার কোনও সাধারণ সমাধান নেই। যদি আপনি ডেটা ফর্ম্যাট পরিবর্তন করতে পারেন, তবে আপনি স্ট্রিংগুলির একটি অ্যারে প্রতিস্থাপন করতে পারেন। অন্যথায়, json মানব-পঠনযোগ্যতার জন্য ডিজাইন করেনি এমন অসংখ্য উপায়ে এটি।


3
ওপি কী চায়, স্ট্রিংয়ে
নিউলাইনগুলি

3
@ 9ilsdx9rvj0lo: না, তা নয়।
অ্যাডেলসবার্গার

সম্পর্কিত "প্রশ্নটি কোডের একাধিক লাইনে স্ট্রিংয়ের মানকে বিভক্ত করে কোডটিকে কীভাবে সুন্দর দেখানো যায় ...": পাইথনের মাল্টি-লাইন স্টেটমেন্টগুলির সমাধানের জন্য, stackoverflow.com/questions/53162/… দেখুন । মাল্টি-লাইন জেএসএন এবং মাল্টি-লাইন পাইথনের মধ্যে পার্থক্য রয়েছে। মাল্টি-লাইন জেএসওএন 'ON' এর পরে জেএসওনে 'এন' ব্যবহার করে, অর্থাৎ স্ট্রিংয়ে "\ n"। মাল্টি-লাইন পাইথন স্টেটমেন্টস, '\' এর পরে '' n 'অর্থাত্‍ লাইনের উপরে একটি ট্রেলিং ব্যাকস্ল্যাশ ব্যবহার করা হবে continued উইন্ডোজ ফর্ম্যাট: যথাযথ যেখানে replace r \ n এর সাথে প্রতিস্থাপন করুন!
ইভান

106

স্পেসিফিকেশন পরীক্ষা করে দেখুন ! জেএসওন ব্যাকরণের চর উত্পাদন নিম্নলিখিত মানগুলি গ্রহণ করতে পারে:

  • যে কোনও-ইউনিকোড-চরিত্র-ব্যতীত "- \বা--নিয়ন্ত্রণ-অক্ষর character
  • \"
  • \\
  • \/
  • \b
  • \f
  • \n
  • \r
  • \t
  • \u চার হেক্স-সংখ্যা

নিউলাইনগুলি "নিয়ন্ত্রণের অক্ষর" তাই, না, আপনার স্ট্রিংয়ের মধ্যে আক্ষরিক নতুন লাইন নাও থাকতে পারে। তবে আপনি যে কোনও সংমিশ্রণটি \nএবং \rআপনার প্রয়োজন অনুসারে এটি এনকোড করতে পারেন ।



3
এটি সঠিক উত্তর কারণ এটি কোনও অস্পষ্টতা ছাড়েনি। নতুন লাইন হয় যতক্ষণ তারা সঠিকভাবে নিয়ন্ত্রণ অক্ষর দিয়ে পালিয়ে এসেছ স্পেসিফিকেশন অনুযায়ী, অনুমোদিত।
রায়ান

জেএসএনে @ আলিখাকি question n প্রশ্নটির দ্বারা প্রাপ্ত ফলাফলটি সম্পাদন করবে না। হয় আপনি অন্য কিছু (যেমন নিউলাইন চরিত্রগুলি এম্বেড করা) এর কথা ভাবছেন, বা আপনি কিছু প্রোগ্রামিং ভাষায় একটি স্ট্রিং আক্ষরিক (জেএসওএন সহ) একটি নিউলাইন সম্পর্কে কথা বলছেন যা আবার অন্যরকম।
হালকা ঘোড়দৌড়

@ লাইটনেসেসেসিনআরবাইট হ্যাঁ আমি স্ট্রিংয়ে নতুন লাইনের সন্ধান করছি
আলী খাকি

46

জেএসএন পাঠযোগ্যতার জন্য ব্রেকিং লাইনগুলিকে অনুমতি দেয় না।

আপনার সেরা বেট হ'ল এমন আইডিই ব্যবহার করা যা আপনার জন্য লাইনে মোড়ক দেয়।


1
বিবিইডিট-এর মতো সম্পাদক যা "নরম" লাইনের মোড়কে সমর্থন করে is এটি পাঠ্যটিকে আবৃত করে রাখে যাতে এডিটর উইন্ডোটির দৃশ্যমান অংশের মধ্যে এটি সমস্ত উপস্থিত হয় তবে আপনি যে লাইনের শেষটি টাইপ করেন (উদাহরণস্বরূপ, গাড়ীর ফেরত আঘাত করা) ফাইলটি সংরক্ষণ করা হয় তখন তা সংরক্ষণ করা যায়। কোড ট্রিকস বা হ্যাকের অবলম্বন না করেই সত্যিকারের দীর্ঘ স্ট্রিং সহ JSON সম্পাদনা করা আরও সহজ করে তোলে।
চশটনের

44

এটি সত্যিই একটি পুরানো প্রশ্ন, তবে আমি অনুসন্ধানে এটি পেয়েছিলাম এবং আমি মনে করি আপনার সমস্যার উত্স আমি জানি।

জেএসএন তার ডেটাতে "সত্য" নতুন লাইনের অনুমতি দেয় না; এটি কেবল নিউলাইনগুলি এড়িয়ে যেতে পারে। দেখুন উত্তর থেকে @YOU । প্রশ্ন অনুসারে, দেখে মনে হচ্ছে আপনি পাইথনে দুটিভাবে লাইন ব্রেকগুলি থেকে বাঁচার চেষ্টা করেছেন: লাইন ধারাবাহিকতা অক্ষর ( "\") ব্যবহার করে বা "\n"পালানো হিসাবে ব্যবহার করে ।

তবে মনে রাখবেন: আপনি অজগরটিতে একটি স্ট্রিং ব্যবহার করছেন, বিশেষ পালানো অক্ষর ( "\t", "\n") বাস্তব নিয়ন্ত্রণ অক্ষরে অনুবাদ করা হবে! "\n"হওয়া ASCII নিয়ন্ত্রণ চরিত্র একটি newline অক্ষর, যা অবিকল চরিত্র যে JSON অবৈধ হয় প্রতিনিধিত্বমূলক সঙ্গে প্রতিস্থাপন করা হবে। (লাইন ধারাবাহিকতা চরিত্রের হিসাবে এটি কেবল নতুন লাইনটি বের করে দেয়।)

তাই আপনাকে যা করতে হবে তা হল পাইথনকে চরিত্রগুলি থেকে পালানো থেকে বিরত রাখা। আপনি এটি কাঁচা স্ট্রিং ব্যবহার করে করতে পারেন (স্ট্রিংয়ের rসামনে রেখে দেওয়া হিসাবে r"abc\ndef", অথবা নিউলাইনটির সামনে অতিরিক্ত স্ল্যাশ যুক্ত করে "abc\\ndef")।

উপরের দুটি "\n"উইলই আসল নিউলাইন এএসসিআইআই কন্ট্রোল ক্যারেক্টারের পরিবর্তে "\n"দুটি আক্ষরিক চরিত্র হিসাবে ছেড়ে যাবে , যারপরে জেএসওএন একটি নিউলাইন পলায়ন হিসাবে ব্যাখ্যা করতে পারে।


12

স্ট্রিংগুলির অ্যারে হিসাবে সম্পত্তি মান লিখুন। উদাহরণস্বরূপ এখানে দেওয়া https://gun.io/blog/m Multi-line-strings-in- json/ । এইটা সাহায্য করবে.

নীচের মতো মাল্টলাইন স্ট্রিংয়ের জন্য আমরা সর্বদা স্ট্রিংগুলির অ্যারে ব্যবহার করতে পারি।

{
    "singleLine": "Some singleline String",
    "multiline": ["Line one", "line Two", "Line Three"]
} 

এবং আমরা মাল্টি লাইন ফ্যাশনে সামগ্রী প্রদর্শন করতে অ্যারেটিকে সহজেই পুনরাবৃত্তি করতে পারি।


1
আমি আপনাকে লিঙ্কটি থেকে আপনার উত্তরে তথ্য যুক্ত করার পরামর্শ দিচ্ছি, কারণ লিঙ্কগুলি ভবিষ্যতে ভাঙতে পারে।
ইয়ংহব্বিট

5
তবে সেগুলি আপনার কাছে একটি অ্যারে রয়েছে, স্ট্রিং নয়। একটি অ্যারে একটি স্ট্রিং নয়। সময়কাল।
9 বিএসডিএক্স 9 আরভিজে 0lo

শুধু এই চিন্তা ছিল। নিস!
ফিলিপ জ্যাকবস

12

Json5 ব্যবহার করুন (লোডার) দেখুন https://json5.org/ - উদাহরণ (json5 দ্বারা)

{
  lineBreaks: "Look, Mom! \
No \\n's!",
}

প্রশ্নটি ওপি জিজ্ঞাসা করেছিল। কমপক্ষে যদি সে json5 ব্যবহার করতে পারে।
নাম

10

জেএসএনে মাল্টি-লাইন স্ট্রিং থাকা কি সম্ভব?

হ্যাঁ. আমি এখনই এটিকে আমার ফায়ারফক্স ওয়েব ব্রাউজারের সাথে এফ 12 টিপুন, কনসোলে ক্লিক করে এবং স্ক্রিনের নীচে টাইপ করে পরীক্ষা করেছি।

x={text:"hello\nworld"}

অবজেক্ট এক্সটি সবেমাত্র একটি JSON ফর্ম্যাট স্ট্রিং থেকে তৈরি হয়েছে যেখানে একটি বহু-লাইন স্ট্রিং রয়েছে।

console.log(x.text)
hello
world

x.text প্রদর্শিত হয় এটি দেখায় যে এটি একটি বহু-লাইনের স্ট্রিং।

এই দুটি পরীক্ষা দেখায় যে ফায়ারফক্সের জাভাস্ক্রিপ্ট ইন্টারপ্রেটার বহুবিধ স্ট্রিং সহ জেএসওএন তৈরি এবং ব্যবহার করে খুশি।

সঙ্গে আরো পরীক্ষা JSON.stringifyএবং JSON.parseদেখিয়েছেন জাভাস্ক্রিপ্ট ব্যাখ্যাকারী একটি বস্তু তাদেরকে JSON করার একাধিক লাইন পংক্তি ধারণকারী রূপান্তর এবং ফিরে আবার এটা পার্স সব সময়ে কোন সমস্যা পারবেন না।

আমি অতীতে শেক্সপিয়ারের সম্পূর্ণ কাজগুলি একটি জেএসওএন অবজেক্টে সম্পত্তি হিসাবে সংরক্ষণ করেছি এবং পরে এটি নিরবচ্ছিন্নভাবে ইন্টারনেটে প্রেরণ করেছি।

উদাহরণ

এখানে দুটি লাইনের স্ট্রিংটি তিনটি লাইনের উপরে প্রবেশ করানো হয়েছে

x={text:"expert\
s\nex\
change"}

আমরা বস্তুটি প্রদর্শন করতে পারি

console.log(x)

দান

Object { text: "experts\nexchange" }

বা স্ট্রিং

console.log(x.text)

দান

experts
exchange

স্ট্রিংয়ের রেখার শেষে end n ব্যবহার করে ফলাফল আসে এবং একাধিক ইনপুট লাইন লাইনটির শেষে \ ব্যবহার করে অর্জন করা হয়।

অনুশীলনে আপনি আপনার লাইনের শেষটি স্ট্রিংয়ের সাথে একটির সাথে সিঙ্ক্রোনাইজ করতে চাইতে পারেন

x={text:"experts\n\
exchange"}

মাল্টি-লাইন স্ট্রিং দৈর্ঘ্য

console.log("Hello\nWorld".length)
11 
console.log("Hello World".length)
11

নোট করুন যে নতুন লাইনের সাথে স্ট্রিং স্পেসের সাথে থাকা স্ট্রিংয়ের চেয়ে দীর্ঘ নয়। কীবোর্ডে দুটি অক্ষর টাইপ করা হলেও ('\' এবং 'এন'), কেবল একটি অক্ষর স্ট্রিংয়ে সংরক্ষিত থাকে।


3
একটি জাভাস্ক্রিপ্ট স্ট্রিং ফর্ম্যাট রিডার কোনও জেএসএন স্ট্রিং ফর্ম্যাট রিডার নয় এবং বিপরীতে, কাজ করার সময় জাভাস্ক্রিপ্ট কনসোলটিও গ্রহণ করে x={"a":NaN}এবং x={"a":"a \<literal newline with SHIFT>b"}, যা জেএসএন নয়, তবে জাভাস্ক্রিপ্ট
বিড়াল

9

এর \r\nসাথে সমস্ত ঘটনাকে প্রতিস্থাপন করতে রিজেক্স ব্যবহার করুন \\n

এটি স্কালায় আমার পক্ষে কাজ করেছিল।

val newstr = str.replace("\r\n", "\\n")

3 ব্যাকস্ল্যাশ কেন?
নেক্সাস

6
@nexus আমি জানি না তবে কেন কেউ এটি 3 টি ব্যাকস্ল্যাশ এডিট করেছিল। এটি সংশোধন করার জন্য লাইটনেসেসেস ইনঅরবিকে ধন্যবাদ।
সিকান্দার

5

আপনি যদি নোড.জেএস ব্যবহার করতে ইচ্ছুক হন তবে আপনি এটি করতে পারেন:

module.exports = {

  multilineStr: `

     dis my life 
     it's now or never

  `

}

আপনি নোড.জেএস দিয়ে আমদানি করতে পারেন এবং এটিকে সহজেই JSON এ রূপান্তর করতে পারেন:

echo `node -pe 'JSON.stringify(require("./json-mod.js"))'`

এবং আপনি পান:

{"multilineStr":"\n \n dis my life\n it's now or never\n \n "}

এটি কীভাবে কাজ করে : আপনি জেএস মডিউলটি লোড করতে নোড.জেএস ব্যবহার করেন যা একটি জেএস অবজেক্ট তৈরি করে যা সহজেই নোড.জেএস দ্বারা জেএসএন স্ট্রিংযুক্ত হতে পারে creates -E বিকল্পটি স্ট্রিংকে মূল্যায়ন করে এবং -pবিকল্পটি শেষ নোড.জেএসএস অপারেশনের স্টার্টআউটের রিটার্নের ফলাফলকে প্রতিধ্বনিত করে।

আপনি যদি একটি ভিন্ন জজ ডিরেক্টরীতে থাকা .js স্ক্রিপ্টটি লোড করতে চান, আপনাকে "" এবং '' স্ট্রিংগুলি স্যুইচ করতে হবে:

my_script='../json-mod.js'
echo `node -pe "JSON.stringify(require('$my_script'))"`

-4

base64এনকোডেড স্ট্রিংয়ের মান ব্যবহার করে দেখুন । বেশিরভাগ সময় আমার জন্য কাজ করেছেন।

{
    "singleLine": "Some singleline String",
    "multiline": ["Line one", "line Two", "Line Three"]
} 

পরে base64মত এনকোড স্ট্রিং বর্ণন

{
    "singleLine": "Some singleline String",
    "multiline": "TGluZSBvbmUKTGluZSBUd28KTGluZSBUaHJlZQ=="
} 

বেস 64 এনকোডিং এবং ডিকোডিং সমস্ত ভাষায় উপলব্ধ।


7
এটি প্রদর্শনের জন্য আপনার বিশেষ কোড দরকার, আপনি একটি স্ট্রিংকে অ্যারেতে রূপান্তর করছেন। এটি কোনও সমাধান নয়
tom10271

3
আমি মনে করি এটি একটি খারাপ ধারণা - এটি অযৌক্তিকভাবে বিষয়বস্তুকে ছড়িয়ে দেয় এবং এটি তৈরি ও গ্রহণের জন্য অতিরিক্ত কোড, সময়, মেমরি এবং সরঞ্জাম প্রয়োজন। স্ট্রিংটির মাধ্যমে স্ক্যান করা এবং অবশ্যই বিশেষ অক্ষরের পরিবর্তনের জন্য অতিরিক্ত কোড, সময় এবং মেমরির খুব প্রয়োজন, তবে অবশ্যই বেস 64 এর এনকোডিং এবং ডিকোডিংয়ের চেয়ে কম
সেমিনিনো

এটি একটি খারাপ ধারণা কারণ জেএসএনের পঠনযোগ্যতা চলে গেছে, এবং @ টম 10271 উল্লিখিত মত, আপনার জেএসএন ব্যবহার করার জন্য অতিরিক্ত অপারেশন প্রয়োজন
T90

-23

মাল্টিলাইন পাঠ্যটি txt ফাইলটিতে রাখুন এবং তারপরে

var str = {
    text: cat('path_to_file/text.txt')
}

(এটি মঙ্গোডিবিতে কাজ করে)


11
-1: এটি একটি বিভ্রান্তিমূলক উত্তর। এটি কোনও বৈধ JSON নয় বা জাভাস্ক্রিপ্টে কোনও কাজ করে না কারণ নামকরণের কোনও কার্য নেই cat
মার্টিন শোহফুß
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.