জেএসএনে বস্তুর অ্যারের সমপরিমাণ YAML


192

আমার কাছে JSON অ্যারে অবজেক্ট রয়েছে যা আমি YAML এ রূপান্তর করার চেষ্টা করছি।

{"AAPL": [
  {
    "shares": -75.088,
    "date": "11/27/2015"
  },
  {
    "shares": 75.088,
    "date": "11/26/2015"
  },
]}

ওয়াইএএমএলে কি সমান উপস্থাপনা রয়েছে যা কেবল জেএসএন নয়? আমি ভালো কিছু করতে চাই

AAPL:
  - :
    shares: -75.088
    date: 11/27/2015
  - :
    shares: 75.088
    date: 11/26/2015

তবে আমি সবচেয়ে পরিষ্কার জিনিসটি নিয়ে এসেছি

AAPL:
  - {
    shares: -75.088,
    date: 11/27/2015
  }
  {
    shares: 75.088,
    date: 11/26/2015
  }

উত্তর:


365

টি এল; ডিআর

তুমি এটা চাও:

AAPL:
  - shares: -75.088
    date: 11/27/2015
  - shares: 75.088
    date: 11/26/2015

ম্যাপিং

JSON অবজেক্টের YAML সমতুল্য হ'ল একটি ম্যাপিং, যা দেখতে এটির মতো দেখাচ্ছে:

# flow style
{ foo: 1, bar: 2 }
# block style
foo: 1
bar: 2

মনে রাখবেন যে ব্লক ম্যাপিংয়ের কীগুলির প্রথম অক্ষর একই কলামে থাকতে হবে। প্রদর্শন করার জন্যে:

# OK
   foo: 1
   bar: 2
# Parse error
   foo: 1
    bar: 2

সিকোয়েন্স

YAML এ JSON অ্যারের সমতুল্য একটি ক্রম, যা এগুলির উভয়ের (যা সমান) এর মতো দেখায়:

# flow style
[ foo bar, baz ]
# block style
- foo bar
- baz

একটি ব্লক অনুক্রমে -গুলি একই কলামে থাকা আবশ্যক।

YSL থেকে JSON

আসুন আপনার JSON কে YAML এ পরিণত করুন। আপনার জেএসওএন এখানে:

{"AAPL": [
  {
    "shares": -75.088,
    "date": "11/27/2015"
  },
  {
    "shares": 75.088,
    "date": "11/26/2015"
  },
]}

ট্রিভিয়ার পয়েন্ট হিসাবে, ওয়াইএএমএলটি জেএসএনের সুপারস্টার, সুতরাং উপরেরটি ইতিমধ্যে বৈধ YAML — তবে আসুন আমরা এই প্রিটিটিয়ারটি তৈরি করতে YAML এর বৈশিষ্ট্যগুলি ব্যবহার করি।

ভিতর থেকে শুরু করে, আমাদের দেখতে এমন বস্তু রয়েছে:

{
  "shares": -75.088,
  "date": "11/27/2015"
}

সমতুল্য YAML ম্যাপিংটি হ'ল:

shares: -75.088
date: 11/27/2015

আমাদের মধ্যে দুটি রয়েছে একটি অ্যারে (ক্রম):

- shares: -75.088
  date: 11/27/2015
- shares: 75.088
  date: 11/26/2015

কীভাবে -s লাইন আপ এবং ম্যাপিং কীগুলির প্রথম অক্ষরগুলি লাইন আপ করে তা নোট করুন ।

শেষ অবধি, এই ক্রমটি কী সহ ম্যাপিংয়ের ক্ষেত্রে নিজেই একটি মূল্য AAPL:

AAPL:
  - shares: -75.088
    date: 11/27/2015
  - shares: 75.088
    date: 11/26/2015

এটি বিশ্লেষণ করে এটিকে JSON এ আবার রূপান্তর করলে প্রত্যাশিত ফলাফল পাওয়া যায়:

{
  "AAPL": [
    {
      "date": "11/27/2015", 
      "shares": -75.088
    }, 
    {
      "date": "11/26/2015", 
      "shares": 75.088
    }
  ]
}

আপনি এটা দেখতে (এবং ইন্টারেক্টিভ সম্পাদনা) করতে পারেন এখানে


তালিকায় একাধিক আইটেম রয়েছে যা শেয়ার এবং খেজুরের জুড়ি রয়েছে তা প্রতিবিম্বিত করতে আমি আমার প্রশ্ন আপডেট করেছি।
ওজন করুন

3
@ ওয়েগ্রি: কোনও পার্থক্য নেই। YAML ওয়েবসাইট থেকেও উদাহরণটি দেখুন: yaml.org/start.html
ফেলিক্স ক্লিং

5

উপরে দুর্দান্ত উত্তর। আরেকটি উপায় হ'ল দুর্দান্ত ইয়ামল জকিউ র‌্যাপার সরঞ্জামটি ব্যবহার করা, yq এ https://github.com/kislyuk/yq

আপনার JSON উদাহরণটি কোনও ফাইলে সংরক্ষণ করুন, ex.json এবং তারপরে বলুন

yq -y '.' ex.json

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