ஆன்லைன் JSON to JSON ஸ்கீமா ஜெனெரேட்டர்
உண்மை JSON-இல் இருந்து வலுவான, தரநிலையுடன் கூடிய JSON ஸ்கீமா உருவாக்கும் - உடனடி, பாதுகாப்பான மற்றும் இலவசம்.
இந்த கருவி JSON மாதிரியை எடுத்துக் கொண்டு அதன் கட்டமைப்பு, தரவின் வகைகள் மற்றும் கட்டுப்பாடுகளை துல்லியமாக பிரதிபலிக்கும் JSON ஸ்கீமா Draft-07 ஆவணத்தை உருவாக்கும். அனைத்து செயலாக்கமும் உங்களுடைய உலாவியில் நடக்கும், முழு தனியுரிமைக்காக. எந்த தரவையும் பதிவேற்றம் செய்யப்படவோ சேமிக்கப்படவோ செய்யப்படாது. API ஆவணத்துக்கு, சரிபார்ப்புக்கு மற்றும் குறியீட்டு உருவாக்கத்திற்கு சிறந்தது.
கீழே JSON-ஐ JSON ஸ்கீமாவாக மாற்றவும்
ஸ்கீமா உருவாக்கம் பின்னணி செயல்முறை
மாதிரி JSON-இலிருந்து JSON ஸ்கீமாவை உருவாக்குவது என்பது களங்களை வகைகளுடன் மட்டும் பொருத்துவதல்ல. இந்த கருவி ஒழுங்குநிலை மற்றும் முழுமையுடன் பணியாற்ற சில முக்கிய படிகளை மதிப்பீடு செய்கிறது:
- பாகுபடுத்தல்: கருவி உங்கள் JSON-ஐ ECMA-404 முறைப்படி பார்ஸ் செய்கிறது, தவறான உள்ளீடு அல்லது குழப்பமான அமைப்புகளுக்கு விரிவான பிழை தகவலை அளிக்கிறது.
- கட்டமைப்பு பகுப்பாய்வு: JSON ஸ்கீமாவின் அடிப்படை வகைகளுக்கு (ஒப்ஜெக்ட், வரிசை, டெக்ஸ்ட், எண், முழு எண், பூலியன், நல்) ஏற்ப ஒவ்வொரு சொத்தும் மற்றும் எலிமென்டும் வகைப்படுத்துகிறது.
- புனராய்வு நடைமுறை: ஆழ்ந்த மற்றும் அடுக்குச் கட்டமைப்புகள் (ஒப்ஜெக்ட்களின் வரிசைகள் அல்லது அடுக்குமட்ட வரிசைகள்) மறுபடியும் சுற்றி பயணப்படுகின்றன, அடுக்கு ஸ்கீமா வரையறைகள் தோற்றுவிக்க.
- வகை கணிப்பு மற்றும் சரிதழ்வு: ஒவ்வொரு சொத்திலும் அல்லது வரிசை உறுப்பினரிலும் வகைகள் கணிக்கப்படுகின்றன. கலந்த வகைகள் உள்ள இடங்களில் JSON ஸ்கீமா விதிகளின்படி 'type' அணி (union type) ஆக இடம்பெறுகிறது.
- கட்டாய மற்றும் விருப்பமான அடையாளம்: ஒவ்வொரு நிலையின் அனைத்து ஒப்ஜெக்ட்களும் பரிசீலிக்கப்பட்டு, எப்போதும் இருக்கும் (கட்டாயம்) மற்றும் சில நேரங்களில் காணாமல் போவது (விருப்பம்) என்ற வேறுபாட்டை விடுப்பது.
- மதிப்புக் கட்டுப்பாடுகள்: சாத்தியமாக உள்ள இடங்களில், கருவி enums (அனுமதிக்கப்பட்ட மதிப்புகளின் தொகுதி), எண்களுக்கு குறைந்தபட்சம்/அதிகபட்சம், எழுத்துகளுக்கு குறைந்தபட்சம்/அதிகபட்ச நீளம், மற்றும் வடிவமைப்பு குறிப்புகள் (எ.கா 'மின்னஞ்சல்', 'uri', 'தேதி-நேரம்') கணிக்கிறது.
- அருகுபுள்ளி கையாளல்: காலி வரிசைகள், நல் மதிப்புகள் மற்றும் ஒற்றை கூறுகளுக்கு சிறப்பு கவனம் செலுத்தப்படுகிறது—உண்மையான உலக மாற்றங்களுக்கு பொருந்தும் செல்லுபடியான ஸ்கீமாக்கள் உறுதி செய்ய.
- ஸ்கீமா அமைப்பு: இறுதி ஸ்கீமா Draft-07 சட்ட அனுசலனமான ஆவணமாக வெளியிடப்படுகிறது—Ajv, OpenAPI, அல்லது குறியீட்டு உருவாக்க நூலகங்களுடன் பயன்பாட்டுக்கு தயாராக.
JSON ஸ்கீமா உருவாக்க வேண்டிய காரணங்கள் மற்றும் பயன்பாடுகள்
- தானாக சரிபார்ப்பு: உருவாக்கப்பட்ட ஸ்கீமாக்களை பயன்படுத்தி உங்கள் APIகள், மைக்ரோசெர்வீசுகள் அல்லது CLIகளில் தரவு ஒப்பந்தங்களை கட்டாயப்படுத்தி வரும் தகவல்களை சரிபார்க்கவும்.
- API ஆவணமிடல்: துல்லியமான தரவுக் குறிப்புகளுடன் ஆட்டோ-உருவாக்கப்பட்ட ஆவணங்கள் மற்றும் இடைமுக ஆராய்ச்சியாளர்களைக் (Swagger, Postman) உருவாக்கவும்.
- குறியீட்டு உருவாக்கம்: உங்கள் ஸ்கீமாவை ஒரே உண்மைத்தொகையாக கொண்டு TypeScript, Python, Java மற்றும் பிற மொழிகளில் வகை-பாதுகாப்பான மாதிரிகள் அல்லது சரிபார்ப்பாளர்கள் உருவாக்கவும்.
- சோதனை தரவு உருவாக்கம்: JSON Schema Faker அல்லது Mockaroo போன்ற கருவிகள் ஸ்கீமைகளை பயன்படுத்தி QA மற்றும் அதிகபட்ச சோதனைக்கான பாராட்டுக்குரிய மாக் தரவை உருவாக்குகின்றன.
- மறுசீரமைப்பு மற்றும் இடமாற்றம்: பழைய அல்லது மாற்றமடைந்து வரும் தரவு கட்டமைப்புகளை சரிபார்த்து உங்கள் பின்பக்க வளர்ச்சியின் போது பொருந்துதலைக் காப்பாற்றவும்.
செயற்கை அம்சங்கள்
- பிரதான சரிபார்ப்பாளர்கள் மற்றும் API வடிவமைப்பு தளங்களுடன் பரபரப்பான ஒத்துழைக்கும் Draft-07 இணக்கம்.
- ஆழ்ந்த அடுக்குகளின் மறுபடியும் பகுப்பாய்வு—வரிசைகளுக்குள் வரிசைகள், வரிசைகளுக்குள் ஒப்ஜெக்டுகள் மற்றும் பிற.
- மாதிரிகள் வேறுபடும் புலங்கள் அல்லது உறுப்பினர்களுக்கு துல்லியமான கூடுபிரிவு வகைகள் ('type' அணி) கணிப்பு.
- தானாக enums, நீளம், மாதிரி, வடிவமைப்பு, குறைந்தபட்சம்/அதிகபட்சம் மற்றும் பிற பொதுவான கட்டுப்பாடுகள் கண்டறிதல்.
- நல் மதிப்புகள், காலி வரிசைகள்/ஒப்ஜெக்டுகள் மற்றும் பகுதி பதிவுகள் மீது தெளிவான ஆதரவு.
- ஸ்கீமா உருவாக்கம் முழுக்க உலாவி உள்ளே நடைபெறும். உங்கள் உள்ளீட்டு JSON உங்கள் சாதனத்தை விட்டு வெளியே செல்லாது.
தொழில்நுட்ப உதாரணம்: மாதிரி JSON இலிருந்து Draft-07 ஸ்கீமாவிற்கு
{ "transaction": { "id": "txn_abc123", "amount": 99.95, "currency": "USD", "status": "completed", "meta": { "ip": "203.0.113.1", "tags": ["recurring", null] } }, "refunded": false, "notes": null }உருவாக்கிய JSON ஸ்கீமா வெளியீடு
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "transaction": { "type": "object", "properties": { "id": { "type": "string" }, "amount": { "type": "number" }, "currency": { "type": "string", "minLength": 3, "maxLength": 3 }, "status": { "type": "string", "enum": ["completed"] }, "meta": { "type": "object", "properties": { "ip": { "type": "string", "format": "ipv4" }, "tags": { "type": "array", "items": { "type": ["string", "null"] } } }, "required": ["ip", "tags"] } }, "required": ["id", "amount", "currency", "status", "meta"] }, "refunded": { "type": "boolean" }, "notes": { "type": ["null"] } }, "required": ["transaction", "refunded", "notes"] }
இந்த JSON to JSON ஸ்கீமா கருவியை எவ்வாறு பயன்படுத்துவது
- கீழே உள்ள எழுத்துப்பிடம் உங்கள் மாதிரி JSON-ஐ பிரதியெடுக்கவும் அல்லது உள்ளிடவும். இந்த கருவி எளிய ஒப்ஜெக்ட் முதல் ஆழ்ந்த அடுக்குச் கட்டமைப்புகளுக்கு ஏற்றதுதானே ஏற்றுக் கொள்கிறது.
- 'JSON ஸ்கீமா உருவாக்கவும்' பொத்தானை கிளிக் செய்து உருவாக்கப்பட்ட JSON ஸ்கீமாவை பார்வையிடவும்.
- ஸ்கீமாவை நகலெடுக்கவும், தொகுக்கவும் அல்லது பதிவிறக்கவும். அதனை நேரடியாக உங்கள் API வரையறைகள், சரிபார்ப்பு கோடுகள் அல்லது ஆவணங்களில் இணைக்கலாம்.
JSON-இல் இருந்து ஸ்கீமா உருவாக்கத்திற்கு குறியீட்டு உதாரணங்கள்
பல்வேறு прог்ராமிங் மொழிகளில் JSON-இல் இருந்து JSON Schema எப்படி உருவாக்குவது என்பதை பாருங்கள்.
const generateSchema = require('jsonschema-generator');
const data = {
name: "Alice",
age: 30,
isActive: true,
tags: ["user", "admin"]
};
const schema = generateSchema(data);
console.log(JSON.stringify(schema, null, 2));
const GenerateSchema = require('generate-schema');
const data = { name: "Alice", age: 30, tags: ["admin", "user"] };
const schema = GenerateSchema.json('User', data);
console.log(JSON.stringify(schema, null, 2));
from genson import SchemaBuilder
sample = {"name": "Alice", "age": 30, "tags": ["user", "admin"]}
builder = SchemaBuilder()
builder.add_object(sample)
print(builder.to_json(indent=2))
from jsonschema_generate import generate_schema
sample = {"name": "Alice", "age": 30, "tags": ["user", "admin"]}
schema = generate_schema(sample)
print(schema)
package main
import (
"encoding/json"
"fmt"
"github.com/invopop/jsonschema"
)
type User struct {
Name string `json:"name"
Age int `json:"age"
Tags []string `json:"tags"
}
func main() {
schema := jsonschema.Reflect(&User{})
out, _ := json.MarshalIndent(schema, "", " ")
fmt.Println(string(out))
}
# Generate Java POJOs *from* a JSON Schema, not the reverse.
# For schema generation from Java, see tools like jackson-module-jsonSchema.
# See: https://github.com/FasterXML/jackson-module-jsonSchema
using NJsonSchema;
using Newtonsoft.Json.Linq;
var sample = JObject.Parse("{\"name\":\"Alice\",\"age\":30, \"tags\":[\"user\"]}");
var schema = await JsonSchema.FromSampleJsonAsync(sample.ToString());
Console.WriteLine(schema.ToJson());
require 'vendor/autoload.php';
use Swaggest\JsonSchema\Structure\ClassStructure;
$sample = ["name" => "Alice", "age" => 30, "tags" => ["user"]];
$schema = ClassStructure::exportSchema($sample);
echo json_encode($schema, JSON_PRETTY_PRINT);
require 'json_schemer'
sample = { "name" => "Alice", "age" => 30, "tags" => ["admin", "user"] }
schema = JSONSchemer.schema(sample)
puts schema.to_json
echo '{"name":"Alice","age":30,"tags":["user","admin"]}' | genson | jq .
use schemars::JsonSchema;
use serde::Serialize;
#[derive(Serialize, JsonSchema)]
struct User {
name: String,
age: u32,
tags: Vec<String>,
}
fn main() {
let schema = schemars::schema_for!(User);
println!("{}", serde_json::to_string_pretty(&schema).unwrap());
}
import json.schema._
case class User(name: String, age: Int, tags: List[String])
val schema = Json.schema[User]
println(schema.asSpray.prettyPrint)
# Generate schema from a TypeScript interface:
typescript-json-schema tsconfig.json User --out schema.json
# See https://github.com/YousefED/typescript-json-schema
// Dart does not have an automatic JSON Schema generator yet.
// Manually define schema as a Dart Map or use online tools.