JSON ఫార్మాటర్ & వ్యాలిడేటర్
JSONను పేస్ట్ చేసి ప్రెట్టీ-ప్రింట్ చేయండి, మినిఫై చేయండి లేదా దాని కీలను సార్ట్ చేయండి. అది పార్స్ కాకపోతే, పార్సర్ ఎక్కడ ఆగిపోయిందో ఆ లైన్, కాలమ్ను ఫార్మాటర్ చూపిస్తుంది, సమస్య కింద ఒక పాయింటర్తో. కాబట్టి 3,000 లైన్ల రెస్పాన్స్లో తప్పిపోయిన కామాను కొన్ని సెకన్లలోనే కనుగొనవచ్చు.
0 అక్షరాలు · 0 పదాలు · 0 లైన్లు
0 అక్షరాలు · 0 పదాలు · 0 లైన్లు
పూర్తిగా ఈ బ్రౌజర్ ట్యాబ్లోనే నడుస్తుంది. మీ టెక్స్ట్ అప్లోడ్ లేదా నిల్వ చేయబడదు.
JSON విలువ రకాలు
RFC 8259 ఈ విలువలను మాత్రమే అనుమతిస్తుంది. ఆబ్జెక్ట్లు, అరేలు లోపల లోపల ఉండవచ్చు; మిగిలినవన్నీ చివరి విలువలు.
| రకం | ఉదాహరణ | నియమం |
|---|---|---|
| ఆబ్జెక్ట్ | {"id": 7, "tags": ["a"]} | కీలు డబుల్ కోట్స్లో ఉన్న స్ట్రింగ్లు కావాలి; సభ్యులను కామాలతో వేరు చేయాలి, చివర అదనపు కామా ఉండకూడదు. |
| అరే | [1, "two", null] | ఏ విలువలనైనా క్రమంగా ఉంచే జాబితా, వేర్వేరు రకాలు అనుమతించబడతాయి. |
| స్ట్రింగ్ | "caf\u00e9 \"quoted\"" | డబుల్ కోట్స్ మాత్రమే; కంట్రోల్ అక్షరాలను ఎస్కేప్ చేయాలి; \u ఎస్కేప్లలో నాలుగు హెక్స్ అంకెలు ఉంటాయి. |
| సంఖ్య | -12.5e3 | దశాంశం మాత్రమే: ఐచ్ఛిక మైనస్, ముందు సున్నాలు ఉండకూడదు, ఐచ్ఛిక భిన్నం, ఎక్స్పోనెంట్. NaN లేదా Infinity ఉండకూడదు. |
| true, false, null (లిటరల్స్) | true | చిన్న అక్షరాలు, కోట్స్ లేకుండా. |
పార్సర్ తిరస్కరించేవి
ఈ పేజీ తయారైనప్పుడు, ఫార్మాటర్ ఉపయోగించే అదే JSON.parseకు కింది ప్రతి ఇన్పుట్ను ఇచ్చాం.
| ఇన్పుట్ | సమస్య | JSON.parse |
|---|---|---|
{"a": 1,} | చివర అదనపు కామా | తిరస్కరించబడింది |
{'a': 1} | సింగిల్ కోట్స్ స్ట్రింగ్లు | తిరస్కరించబడింది |
{"a": 1 /* note */} | కామెంట్లు | తిరస్కరించబడింది |
{a: 1} | కోట్స్ లేని కీ | తిరస్కరించబడింది |
{"n": NaN} | NaN JSON సంఖ్య కాదు | తిరస్కరించబడింది |
{"n": 012} | ముందు సున్నా | తిరస్కరించబడింది |
{"n": 0x1F} | హెక్సాడెసిమల్ సంఖ్య | తిరస్కరించబడింది |
JSON స్ట్రింగ్లలో ఎస్కేప్లు
| అక్షరం | JSONలో రాసే రూపం |
|---|---|
| డబుల్ కోట్ | "\"" |
| బ్యాక్స్లాష్ | "\\" |
| లైన్ ఫీడ్ | "\n" |
| ట్యాబ్ | "\t" |
| క్యారేజ్ రిటర్న్ | "\r" |
| కంట్రోల్ అక్షరం U+0001 | "\u0001" |
| ఫార్వర్డ్ స్లాష్ (ఎస్కేప్ ఐచ్ఛికం) | "/" |
| ASCII కాని అక్షరం (ఎస్కేప్ అవసరం లేదు) | "é" |
చెల్లుబాటు అయ్యే JSON డాక్యుమెంట్ పాటించే నియమాలు
JSONను RFC 8259 నిర్దేశిస్తుంది (సారాంశంలో ECMA-404తో సమానం). ఒక డాక్యుమెంట్ అంటే ఒకే విలువ: ఆబ్జెక్ట్, అరే, స్ట్రింగ్, సంఖ్య, true, false లేదా null. ఆబ్జెక్ట్ కీలు ఎల్లప్పుడూ డబుల్ కోట్స్లో ఉండే స్ట్రింగ్లు. స్ట్రింగ్లలో డబుల్ కోట్స్ మాత్రమే వాడాలి; కోట్, బ్యాక్స్లాష్, U+0020 కంటే తక్కువ ఉన్న ప్రతి కంట్రోల్ క్యారెక్టర్ను ఎస్కేప్ చేయాలి. అందువల్ల స్ట్రింగ్ లోపల ట్యాబ్లు, లైన్ బ్రేక్లను \t, \n అని రాస్తారు. సిస్టమ్ల మధ్య మార్పిడి అయ్యే JSONకు RFC 8259 UTF-8ను కూడా తప్పనిసరి చేస్తుంది.
సంఖ్యలు దశాంశ రూపంలో ఉంటాయి: ముందు సున్నాలు ఉండకూడదు, హెక్సాడెసిమల్, NaN, Infinity ఉండవు, ముందు ప్లస్ గుర్తు ఉండదు. ఈ ఫార్మాట్లో కామెంట్లు, చివరి కామాలు (trailing commas) ఉండవు. ఆ చివరి రెండు నియమాల వల్లే చాలా వాస్తవ లోపాలు వస్తాయి, ఎందుకంటే JavaScript ఆబ్జెక్ట్ లిటరల్స్, JSON5, చాలా కాన్ఫిగ్ ఫైళ్లు రెండింటినీ అనుమతిస్తాయి. కింది రిఫరెన్స్ పట్టిక, ఫార్మాటర్ వాడే పార్సర్కే ప్రతి సాధారణ పొరపాటును ఇచ్చి రూపొందించబడింది.
ప్రెట్టీ-ప్రింట్, మినిఫై, సార్ట్
ప్రెట్టీ-ప్రింట్ చేస్తే లైన్ బ్రేక్లు, ఇండెంటేషన్ చేరి నిర్మాణం చదవడానికి వీలుగా ఉంటుంది; JavaScript ప్రాజెక్టులలో రెండు స్పేస్లు సాధారణం, Python json.dumps(indent=4)తో నాలుగు స్పేస్లు సాధారణ ఎంపిక, ట్యాబ్లతో ప్రతి పాఠకుడు వెడల్పును ఎంచుకోవచ్చు. మినిఫై చేస్తే అనవసరమైన ప్రతి స్పేస్ తొలగుతుంది; దీనివల్ల API పేలోడ్లు చిన్నవవుతాయి, లాగ్లు లేదా ఎన్విరాన్మెంట్ వేరియబుల్స్ కోసం డాక్యుమెంట్ ఒకే లైన్లో ఇమిడిపోతుంది.
కీలను క్రమబద్ధీకరించు ప్రతి ఆబ్జెక్ట్లోని సభ్యులను అక్షరక్రమంలో, లోపలి స్థాయిలకూ వర్తింపజేస్తూ అమరుస్తుంది. JSON ఆబ్జెక్ట్లకు నిర్వచనం ప్రకారం క్రమం ఉండదు, కాబట్టి సార్టింగ్ అర్థాన్ని మార్చదు, కానీ వేర్వేరు సిస్టమ్ల నుంచి వచ్చిన రెండు డాక్యుమెంట్లను పోల్చడం చాలా సులభమవుతుంది. పార్సింగ్లో సంఖ్యలు JavaScript డబుల్స్గా మారతాయని గమనించండి: 2^53 (9,007,199,254,740,992) కంటే పెద్ద పూర్ణాంకాలు, ఉదాహరణకు కొన్ని డేటాబేస్ IDలు, మళ్లీ ఫార్మాట్ చేసినప్పుడు ఖచ్చితత్వం కోల్పోతాయి, కాబట్టి వాటిని స్ట్రింగ్లుగా ఉంచండి.
JSON నుండి ఇతర ఫార్మాట్లకు
ఫార్మాట్ చేసిన డాక్యుమెంట్ చదవడానికి సులభం, కానీ కొన్నిసార్లు వేరే రూపంలో కావాలి. ఆబ్జెక్ట్ల అరే JSON నుండి CSVతో స్ప్రెడ్షీట్గా మారుతుంది, డేటా కన్వర్టర్ మొత్తం ఫైళ్లను JSON, XML, YAML, CSV మధ్య మారుస్తుంది.
తరచుగా అడిగే ప్రశ్నలు
- కామెంట్లు ఉన్న నా JSONను ఫార్మాటర్ ఎందుకు తిరస్కరిస్తుంది?
- ప్రామాణిక JSONలో కామెంట్ సింటాక్స్ లేదు; RFC 8259 దాన్ని ఉద్దేశపూర్వకంగానే వదిలేసింది. కామెంట్లను తొలగించండి, లేదా ఫైల్ను చదివే టూల్ మద్దతిస్తే దాన్ని JSONC లేదా JSON5గా ఉంచండి.
- JSON లోపంలో "Unexpected token" అంటే ఏమిటి?
- ఆ స్థానంలో రాకూడని అక్షరం పార్సర్కు ఎదురైంది, ఉదాహరణకు సింగిల్ కోట్, } ముందు చివరి కామా లేదా కోట్స్ లేని కీ. చూపిన లైన్, కాలమ్ ఆ అక్షరాన్నే సూచిస్తాయి.
- కీలను సార్ట్ చేస్తే నా డేటా మారుతుందా?
- లేదు. JSONలో ఆబ్జెక్ట్ సభ్యుల క్రమానికి అర్థం లేదు, కాబట్టి సార్ట్ చేసిన డాక్యుమెంట్ సమానమే. అరే క్రమం అర్థవంతమైనది, అది ఎప్పుడూ మారదు.
- ఫార్మాట్ చేసిన తర్వాత పొడవైన సంఖ్య ఎందుకు మారింది?
- JavaScript సంఖ్యలను 64-బిట్ ఫ్లోట్లుగా నిల్వ చేస్తుంది, ఇవి 2^53 వరకు మాత్రమే పూర్ణాంకాలను ఖచ్చితంగా సూచిస్తాయి. అంతకంటే పెద్ద IDలు పార్స్ చేసినప్పుడు రౌండ్ అవుతాయి; ప్రతి అంకె నిలవాలంటే వాటిని స్ట్రింగ్లుగా పంపండి.
- పేస్ట్ చేయకుండా JSON ఫైల్ను ఫార్మాట్ చేయవచ్చా?
- ఫైల్ను ఏదైనా టెక్స్ట్ ఎడిటర్లో తెరిచి, అన్నీ ఎంచుకుని ఇక్కడ పేస్ట్ చేయండి. పదుల మెగాబైట్ల చాలా పెద్ద ఫైళ్లను టెక్స్ట్ఏరియా చూపుతున్నప్పుడు ట్యాబ్ నెమ్మదించవచ్చు.