জেএসএন ডেটা থেকে জেএসএন স্কিমা উত্পন্ন করার সরঞ্জাম [বন্ধ]


177

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

উদাহরণস্বরূপ, আমার ইনপুট থেকে example.json:

{
    "foo": "lorem", 
    "bar": "ipsum"
}

আমি আমার জেসন_স্কেমা_জেনেটর সরঞ্জামটি চালাতাম এবং পেয়ে যাব:

{ "foo": {
    "type" : "string",
    "required" : true,
    "description" : "unknown"
  },
  "bar": {
    "type" : "string",
    "required" : true,
    "description" : "unknown"
  }
}

এই উদাহরণটি ম্যানুয়ালি কোড করা হয়েছে, সুতরাং এটিতে ত্রুটি থাকতে পারে। JSON -> JSON স্কিমা রূপান্তর করতে আমাকে সাহায্য করতে পারে এমন কোনও সরঞ্জাম আছে?


তবে কীভাবে সরঞ্জামটি জানবে যে এটি স্ট্রিং থেকে স্ট্রিংয়ের জেনেরিক মানচিত্র নয়?
hmakholm

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

3
সুতরাং আপনি দাবি করছেন যে "সালিসী স্ট্রিং থেকে অন্যান্য স্বেচ্ছাসেবী স্ট্রিংয়ের মানচিত্র" (যেমন বিষয়বস্তুর বর্ণনায় ফাইলের নাম থেকে ম্যাপিং) কোনও JSON স্কিমা হিসাবে প্রকাশ করা যায় না? আমি জানি সকলের জন্য এটি সত্য হতে পারে তবে এটি আমার দৃষ্টিতে এ জাতীয় ধরণের স্কিম্যাটাকে অকেজো করে দেবে।
এইচএমখোলম মনিকা থেকে

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

3
স্থির চাবিগুলি কখনও কখনও আপনি যা চান তা হয় এবং কখনও কখনও তা হয় না। এটি প্রকৃতপক্ষে পুরো বিষয়টি: কোনও স্বয়ংক্রিয় সরঞ্জাম কোনও বিকল্প যা আপনি চান তা একক নমুনায় সনাক্ত করতে পারে।
hmakholm

উত্তর:


92

আপনি এটি খুঁজছেন হতে পারে:

http://www.jsonschema.net

এটি একটি অনলাইন সরঞ্জাম যা JSON স্ট্রিং থেকে স্বয়ংক্রিয়ভাবে JSON স্কিমা তৈরি করতে পারে। এবং আপনি স্কিমাটি সহজে সম্পাদনা করতে পারেন।


3
শুরু করার জন্য একটি সহজ এবং সহজ জায়গা। তবে এই পৃষ্ঠায় অন্য কোথাও চিহ্নিত jsonschema.net এর সাথে সম্পর্কিত সমস্যাগুলি নোট করুন এবং অফলাইন চাইলে বা কমপক্ষে এপিআই-অ্যাক্সেসযোগ্য, বিকাশ কর্মপ্রবাহে অন্তর্ভুক্ত করার সরঞ্জাম, পরবর্তী উদাহরণ সহ স্কিমার আপডেট করার অনুমতি দেওয়ার জন্য ইত্যাদি কারণগুলিও দেখুন দেখুন সুন্দর স্টিভ বেনেট দ্বারা অপশন তালিকা।
নেলাম্যাকবি

অনুগ্রহ করে নোট করুন যে প্রাথমিক আমদানির পরে স্কিমা সম্পাদনা করার সময় এই সাইটটি অপ্রত্যাশিত ত্রুটি ফেলবে।
কোরিয়াস

1
এমন {"hello": "world","num": 42}
কিছুর

3
পুরানো সাইটগুলি অবশ্যই যথেষ্ট ভাল ছিল না। JSONSchema.Net এখন নতুন করে লেখা হয়েছে। এটা অনেক বেশি মজবুত। আপনার যদি কোনও সমস্যা থাকে তবে দয়া করে তাদের গিটহাবের প্রতিবেদন করুন এবং আমি আনন্দের সাথে এগুলি ঠিক করব: github.com/jackwootton/json-schema
জ্যাক

jsonschema2pojo.org আমি বছরের পর বছর ধরে যা ব্যবহার করছি
কেউ কেউ কোথাও

83

অন্যান্য উত্তরগুলির সংক্ষিপ্তসার, এখানে এখন পর্যন্ত প্রস্তাবিত জেএসওএন স্কিমা জেনারেটর রয়েছে:

অনলাইন:

পাইথন:

NodeJS:

রুবি:


jskemetor - নাsetup.py
এট

কোনও সুযোগ আপনি কি জানেন যদি এই YAML ইনপুটগুলির কোনও সমর্থন করে? আমরা রূপান্তর করতে পারি, তবে কেবল একটি অতিরিক্ত পদক্ষেপ।
ডিলান ইউং

28

GenSON ( PyPI | গিটহাব ) একটি JSON- স্কিমা জেনারেটরের একাধিক বস্তু থেকে একটি একক স্কিমা উৎপন্ন করতে পারে। আপনি এটির সাথে স্কিমগুলিও মার্জ করতে পারেন। এটি পাইথনে লেখা এবং এটি একটি সি এল এল সরঞ্জাম সহ আসে।

(সম্পূর্ণ প্রকাশ: আমি লেখক।)


1
ভাল কাজ, মানুষ! স্কিনফায়ারে কাজ শুরু করার আগে আমি এটি খুঁজে না পাওয়ার জন্য দুঃখিত: github.com/scrapinghub/skinfer
এলিয়াস ডরনেলেস

1
নেই একটি পাইথন, কিন্তু এখানে অন্য এক github.com/snowplow/schema-guru
chuwy

1
গ্রেট! আমি অনলাইন স্কিমা জেনারেটর jsonschema.net দিয়ে হতাশ হয়েছি (এটি বেশিরভাগ অবজেক্টের জন্য "প্রয়োজনীয়" বৈশিষ্ট্য তৈরি করতে ব্যর্থ, কমপ্যাক্ট (এক-লাইন) বৈশিষ্ট্য তৈরি করতে বা আইডি বাদ দিতে কোনও বিকল্প নেই, এবং সর্বাগ্রে একটি স্কিমা তৈরি করে যা একক স্কিমা অ্যারেগুলির জন্য এটি তৈরি করতে ব্যবহৃত ডেটা যাচাই করতে ব্যর্থ হয়)। আপনার সরঞ্জাম চেষ্টা করার জন্য অপেক্ষা করছি।
ডেভ

@ ডেভ - আমিও জেসন স্কিমা.net নিয়ে একই রকম সমস্যার মুখোমুখি হয়েছি, এই অজগর সরঞ্জামটি কি সহায়তা করেছিল?
Cshah

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

22

এই প্রশ্নটি বেশ কয়েকটি উত্সাহ পাচ্ছে তা দেখে, আমি নতুন তথ্য যুক্ত করি (এটি নতুন কিনা তা সম্পর্কে আমি নিশ্চিত নই, তবে আমি এটি সন্ধান করতে পারি না)


6

বেশ কয়েক মাস পরে, আমার কাছে সেরা উত্তরটি আমার সহজ সরঞ্জাম simple এটি কাঁচা তবে কার্যকরী।

কি আমি চাই অনুরূপ কিছু এই । JSON ডেটা JSON স্কিমাটির জন্য একটি কঙ্কাল সরবরাহ করতে পারে। আমি এটি এখনও বাস্তবায়ন করি নি তবে বিদ্যমান জেএসওএন স্কিমাটিকে ভিত্তি হিসাবে দেওয়া সম্ভব হওয়া উচিত, যাতে বিদ্যমান জেএসওন স্কিমা প্লাস জেএসএন ডেটা একটি আপডেট হওয়া জেএসএন স্কিমা তৈরি করতে পারে। যদি ইনপুট হিসাবে এ জাতীয় কোনও স্কিমা না দেওয়া হয়, সম্পূর্ণ ডিফল্ট মান নেওয়া হয় values

এটি পুনরাবৃত্তি বিকাশে খুব কার্যকর হবে: প্রথমবার যখন সরঞ্জামটি চালানো হয়, JSON স্কিমাটি ডামি তবে এটি ডেটার বিবর্তন অনুসারে স্বয়ংক্রিয়ভাবে সংশোধন করা যায়।


2
@ গ্রীন সু এর পরামর্শ কীভাবে আপনার প্রয়োজন অনুসারে বাঁচেনি তা নিয়ে কৌতূহল। আমি মনে করি আপনি এমন একটি ইউটিলিটি বর্ণনা করছেন যা জাম্পস্টার্টার সরবরাহ করে (আপনার শব্দটি 'কঙ্কাল') - স্ক্যাফোডিং কোড জেনারেটরের মতো কিছু?
JustSteve

13
মূলত, সেই সরঞ্জামটির সাথে সমস্যাটি হ'ল এটি একটি অনলাইন সরঞ্জাম। আমার এটি আমার বিকাশের পরিবেশে স্থানীয়ভাবে চালানো দরকার, কখনও কখনও স্বয়ংক্রিয়ভাবে অন্যান্য কাজের অংশ হিসাবে। একটি "এখানে অনুলিপি করুন, সেখানে আটকান" সরঞ্জামটি আমাকে সহায়তা করে না। যদি এটির একটি REST এপিআই থাকে তবে এটি যথেষ্ট ভাল।
ব্লুফাস্ট

2
@ অ্যাডস্টাইভ: অনলাইন সরঞ্জামটি, একটি অনুলিপি-পেস্ট ওয়ার্কফ্লো ব্যবহার করার পরেও বগি প্রদর্শিত হবে (মূল প্রশ্নের 4 বছর পরে)। আমার কাছে জেএসন অবজেক্ট রয়েছে যার জন্য সরঞ্জামটি ভুল স্কিমাস তৈরি করে তবে তবুও এগুলি বাগ রিপোর্ট হিসাবে জমা দেওয়ার জন্য ন্যূনতম পরীক্ষার কেসগুলিতে কমেনি।
ডেভ

5

প্রদত্ত JSON এর জন্য JSON স্কিমা উত্পন্ন করার জন্য অজগর সরঞ্জাম আছে: https://github.com/perenecabuto/json_schema_generator


4
এটি ২০১৩ সাল থেকে অনিচ্ছাকৃত It এটি পাইথন ৩ সমর্থন করে না Moreover এছাড়াও, এটি কেবলমাত্র একটি পুরানো খসড়া সমর্থন করে, যেমন draft-03
একিউম্যানাস

5

generate-schema( এনপিএম | গিথুব ) এটি থেকে জেএসওএন অবজেক্টটি স্কিমা উত্পন্ন করে, একটি আউটপুট জেএসওন স্কিমা, এটি নোড.জেজে লেখা এবং ফাইলগুলিতে পাইপ দেওয়ার জন্য একটি আরপিএল এবং ক্লি সরঞ্জাম নিয়ে আসে।

সম্পূর্ণ প্রকাশ: আমি লেখক :)


4+ খসড়াতে মডিউলটি আপডেট করার কোনও পরিকল্পনা আছে? মিনিট, সর্বোচ্চ অ্যাটর্স, রেফারেন্স এবং আরও যোগ করছেন? বিটিডব্লু টুলটির জন্য ধন্যবাদ :) এটি আমার প্রকল্পে ব্যবহার করবে
মিঃ এলিয়েন

5

এখানে একটি নোডেজ সরঞ্জাম রয়েছে যা https://github.com/krg7880/json-schema-generator এ json স্কিমা v4 সমর্থন করে

এটি কমান্ড লাইন সরঞ্জাম হিসাবে বা নোডেজ গ্রন্থাগার হিসাবে কাজ করে:

var jsonSchemaGenerator = require('json-schema-generator'),
    obj = { some: { object: true } },
    schemaObj;

schemaObj = jsonSchemaGenerator(json);

1
পাশাপাশি একটি সিএলআই সঙ্গে আসে!
পিটার Ilfrich

3

JSON-স্কিমা-জেনারেটর একটি ঝরঝরে রুবি ভিত্তিক জেএসএন স্কিমা জেনারেটর। এটি JSON স্কিমার 3 এবং 4 খসড়া উভয়ই সমর্থন করে। এটি স্ট্যান্ড্যালোন এক্সিকিউটেবল হিসাবে চালানো যেতে পারে, বা এটি রুবি স্ক্রিপ্টের অভ্যন্তরে এম্বেড করা যেতে পারে।

তারপরে আপনি চান সেক্ষেত্রে আপনার সদ্য উত্পন্ন স্কিমার বিপরীতে জেএসএন নমুনাগুলি যাচাই করতে আপনি জসন-স্কিমা ব্যবহার করতে পারেন।


3

একাধিক ইনপুটকে সমর্থন করে এমন অফলাইন সরঞ্জামগুলির জন্য, আমি এখন অবধি সেরাটি দেখেছি https://github.com/wolverdude/GenSON/ আমি এমন একটি সরঞ্জাম দেখতে চাই যা স্ট্যান্ডার্ড ইনপুটটিতে ফাইলের নাম নেয় কারণ আমার হাজার হাজার ফাইল রয়েছে । যাইহোক, আমি ওপেন ফাইল বর্ণনাকারীর বাইরে চলেছি তাই ফাইলগুলি বন্ধ রয়েছে তা নিশ্চিত করুন । আমি JSON স্কিমা জেনারেটরগুলি দেখতে চাই যা পুনরাবৃত্তি পরিচালনা করে। আমি এখন আমার জাভা ক্লাসগুলি থেকে জেএসএন স্কিমাতে যাওয়ার আশায় জেএসএন অবজেক্ট থেকে জাভা ক্লাস উত্পন্ন করার কাজ করছি । আপনি যদি কৌতূহলী হন বা এতে বাগগুলি সনাক্ত করতে চান তবে আমার জেনসন স্ক্রিপ্ট এখানে is

#!/bin/sh
ulimit -n 4096
rm x3d*json
cat /dev/null > x3d.json
find ~/Downloads/www.web3d.org/x3d/content/examples -name '*json' -      print| xargs node goodJSON.js | xargs python bin/genson.py -i 2 -s     x3d.json >> x3d.json
split -p '^{' x3d.json x3d.json
python bin/genson.py -i 2 -s x3d.jsonaa -s x3d.jsonab /Users/johncarlson/Downloads/www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/Box.json > x3dmerge.json 

প্রথমত, আপনি কি ইউনিক্স.স্ট্যাকেক্সেঞ্জার.কম / প্রশ্নগুলি / ২১১০০৩/২ এর উত্তর সরবরাহ করতে পারেন ?
ডেভ

2

এখানে প্রচুর সরঞ্জাম উল্লেখ করা হয়েছে, তবে রেকর্ডের জন্য আরও একটি জেএসওএন স্কিমা ইনফারেন্সার বলে:

https://github.com/rnd0101/json_schema_inferencer

(এটি কোনও গ্রন্থাগার বা পণ্য নয়, পাইথন স্ক্রিপ্ট)

যথাযথ সম্পূর্ণ প্রকাশের সাথে: আমি লেখক।


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