Daugiau
Kaip patikrinti, ar eilutė yra galiojanti JSON eilutė "JavaScript" nenaudojant Try/Catch
Kažkas panašaus į:
var jsonString = '{ "Id": 1, "Name": "Coke" }';
//should be true
IsJsonString(jsonString);
//should be false
IsJsonString("foo");
IsJsonString("<div>foo</div>")
Sprendime neturėtų būti try/catch. Kai kurie iš mūsų įjungia "break on all errors" ir jiems'nepatinka, kad derintuvas nutrūksta dėl tų negaliojančių JSON eilučių.
489
3
Naudokite JSON analizatorių, pavyzdžiui,
JSON.parse
:PrototipeJS turime metodą isJSON. Galite tai išbandyti. Gali padėti ir json.
Norėdami patikrinti, ar ji galioja, galite naudoti "javascript" eval() funkciją.
pvz.
Arba galite naudoti
JSON.parse
funkciją iš json.org:Tikiuosi, kad tai padės.
ĮSPĖJIMAS:
eval()
yra pavojinga, jei kas nors prideda kenkėjišką JS kodą, nes jis bus įvykdytas. Įsitikinkite, kad JSON eilutė yra patikima, t. y. gavote ją iš patikimo šaltinio.Redaguoti Mano 1-ajame sprendime rekomenduojama'tai padaryti.
Kad *užtikrintumėte json patikimumą. Jei
jsonString
nėra grynasis JSON, eval bus išmesta išimtis.