Validace Jsonu pomocí schématu

Giovanna

Validace Jsonu pomocí schématu
« kdy: 16. 11. 2017, 01:11:10 »
Dobrý den,

pokouším se o validaci jsonu pomocí schematu dřív než se pomocí knihovny z nugetu Newtonsoft.Json pokusím o deserializaci, ale nedaří se mi. Proto to zkouším tady. Pomůžete mi, prosím?

Mám schema:

Kód: [Vybrat]
{
                  'type': 'array',
                  'items': {
                    'type': 'object',
            'properties': {
                        'ErrorCode': {'type':'string'},
                        'Message': {'type':'string'},
                        'ParamName': {'type':'string'},
                        'Miscellaneous': {'type':'string'}
                        }
                    }                   
}

a json

Kód: [Vybrat]
{[
  {
    "ErrorCode": "Client not found",
    "Message": "Client token already expired."
  }
]}

jenže mi to hlásí při validaci online na netu:

Citace
Error parsing JSON
Message:
Invalid property identifier character: [.

Nevím, kde mám chybu. Pokud byste někdo věděli, prosím o radu a děkuju.
G.


Giovanna

Re:Validace Jsonu pomocí schématu
« Odpověď #1 kdy: 16. 11. 2017, 01:20:18 »
Pro validaci používám https://www.jsonschemavalidator.net/ a odsud i ta chybová hláška.

soyo

Re:Validace Jsonu pomocí schématu
« Odpověď #2 kdy: 16. 11. 2017, 06:38:36 »
Zdar, skusil by som zahodit vonkajsie zlozene zatvorky - takto to vyzera, ze telo objektu je pole.

alfonz

Re:Validace Jsonu pomocí schématu
« Odpověď #3 kdy: 16. 11. 2017, 09:36:54 »
Nejrychlejsi validace JSONu je prevod do XML a match proti DTD. Cokoli jineho je berlicka a hack.

Unknown

Re:Validace Jsonu pomocí schématu
« Odpověď #4 kdy: 16. 11. 2017, 10:11:09 »
Cokoli jineho je berlicka a hack.

Tak urcite ;-)


mhepp

Re:Validace Jsonu pomocí schématu
« Odpověď #5 kdy: 16. 11. 2017, 10:34:48 »
Nemelo by tam byt neco jako
Kód: [Vybrat]
{ "items" : [ ... ] }

Giovanna

Re:Validace Jsonu pomocí schématu
« Odpověď #6 kdy: 16. 11. 2017, 16:17:04 »
Telo oblektu má být pole, tak se zeptám jinak - nevíte, co mám špatně na schematu, že mi nezvaliduje validní ověřeno deserializací json např jako:

Kód: [Vybrat]
{[
  {
    "ErrorCode": "Client not found",
    "Message": "Client token already expired."
  },
  {
    "ErrorCode": "Resource not found",
    "Message": "Resource already expired."
  }
]}


alfonz

Re:Validace Jsonu pomocí schématu
« Odpověď #7 kdy: 16. 11. 2017, 16:25:13 »
Kód: [Vybrat]
{
"chybiTiPropertyProPole": [{
"ErrorCode": "Client not found",
"Message": "Client token already expired."
},
{
"ErrorCode": "Resource not found",
"Message": "Resource already expired."
}
]
}

Honza

Re:Validace Jsonu pomocí schématu
« Odpověď #8 kdy: 16. 11. 2017, 16:36:21 »
Ten JSON je nevalidní sám o sobě, pokud má být tělo Array, pak jedině takhle:
Kód: [Vybrat]
[
  {
    "ErrorCode": "Client not found",
    "Message": "Client token already expired."
  }
]

Re:Validace Jsonu pomocí schématu
« Odpověď #9 kdy: 22. 11. 2017, 18:43:04 »
Nebo si muzes nadefinovat klasicky XML schema a validovat s nim JSON... nevim, v cem to pises, ale v Jave to neni problem

Re:Validace Jsonu pomocí schématu
« Odpověď #10 kdy: 22. 11. 2017, 21:54:00 »
Telo oblektu má být pole, tak se zeptám jinak - nevíte, co mám špatně na schematu, že mi nezvaliduje validní ověřeno deserializací json např jako:

Kód: [Vybrat]
{[
  {
    "ErrorCode": "Client not found",
    "Message": "Client token already expired."
  },
  {
    "ErrorCode": "Resource not found",
    "Message": "Resource already expired."
  }
]}

Můžu se zeptat, čím to proboha deserializuješ, že to sežere? Tohle není vůbec JSON a každý parser má vyhodit chybu! JSON schema je zcela irelevantní, do validátoru se to ani nedostane.

A to je i odpověď na původní otázku.

Tomas2

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:Validace Jsonu pomocí schématu
« Odpověď #11 kdy: 23. 11. 2017, 00:21:23 »
tohle sežere jako výraz jakýkoliv javascript engine (předpokládám, že se v posledním roce moc nezměnilo), není to json, ale js konstrukce, takže mu to funguje buď v prohlížeči nebo třeba v node.js.

gll

Re:Validace Jsonu pomocí schématu
« Odpověď #12 kdy: 23. 11. 2017, 05:26:47 »
tohle sežere jako výraz jakýkoliv javascript engine (předpokládám, že se v posledním roce moc nezměnilo), není to json, ale js konstrukce, takže mu to funguje buď v prohlížeči nebo třeba v node.js.

Je to validní block statement. Není to validní výraz.

Tomas2

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:Validace Jsonu pomocí schématu
« Odpověď #13 kdy: 23. 11. 2017, 20:43:14 »
tohle sežere jako výraz jakýkoliv javascript engine (předpokládám, že se v posledním roce moc nezměnilo), není to json, ale js konstrukce, takže mu to funguje buď v prohlížeči nebo třeba v node.js.

Je to validní block statement. Není to validní výraz.

Máš pravdu, díky za opravu, chtěl jsem statemant přeložit do češtiny, ale na lepší slovo jsem nepřišel, měl jsem zůstat u osvědčené terminologie :)

gll

Re:Validace Jsonu pomocí schématu
« Odpověď #14 kdy: 24. 11. 2017, 08:11:09 »
tohle sežere jako výraz jakýkoliv javascript engine (předpokládám, že se v posledním roce moc nezměnilo), není to json, ale js konstrukce, takže mu to funguje buď v prohlížeči nebo třeba v node.js.

Je to validní block statement. Není to validní výraz.

Máš pravdu, díky za opravu, chtěl jsem statemant přeložit do češtiny, ale na lepší slovo jsem nepřišel, měl jsem zůstat u osvědčené terminologie :)

o terminologii nejde. Nebude to fungovat, když to použijete jako parametr funkce, nebo výraz na pravé straně přiřazení. Což asi chcete.