Need a string JSON Validator

12,883

Solution 1

The simplest solution would be to write a function which calls JObject.Parse and returns false if it throws a Newtonsoft.Json.JsonReaderException.

Solution 2

Use JContainer.Parse(str) method to check if the str is a valid Json. If this throws exception then it is not a valid Json.

JObject.Parse - Can be used to check if the string is a valid Json object
JArray.Parse - Can be used to check if the string is a valid Json Array
JContainer.Parse - Can be used to check for both Json object & Array
Share:
12,883
Rob
Author by

Rob

.Net Programmer / DBA for the City of Troy, MI

Updated on June 04, 2022

Comments

  • Rob
    Rob almost 2 years

    I'm using newtonsoft's JSON.Net and loving every minute of it.

    However, I am using JObject.Parse(jsonString) to grab a JToken from a response string. If I send invalid JSON, I get an exception. I can catch the exception, but I would like to, be able to test the string first before sending it to Parse.

    Maybe something akin to JObject.TryParse() (which doesn't exist).

    I'd even take bool ValidJson(string)

    I know there's JSONLint out there, but I would really like to keep the external calls to a minimum.

    Any ideas?

  • Mehdi Dehghani
    Mehdi Dehghani over 7 years
    Return true for this invalid JSON: {A:{"B": 1}}
  • Mehdi Dehghani
    Mehdi Dehghani over 7 years
    Return true for this invalid JSON: {A:{"B": 1}}