Gunakan JSON.NET untuk mengesahkan kesahihan rentetan JSON
Memastikan rentetan dalam format JSON yang sah adalah penting untuk integriti data. Pustaka pemprosesan JSON yang popular JSON.NET menyediakan beberapa kaedah untuk mengesahkan rentetan JSON.
Gunakan TryParse atau JToken.Parse
Malangnya, JSON.NET kekurangan kaedah TryParse. Walau bagaimanapun, anda boleh menggunakan JToken.Parse dalam blok cuba-tangkap:
private static bool IsValidJson(string strInput) { if (string.IsNullOrWhiteSpace(strInput)) { return false; } strInput = strInput.Trim(); try { var obj = JToken.Parse(strInput); return true; } catch (JsonReaderException) { return false; } catch (Exception) { return false; } }
Pemeriksaan tambahan untuk struktur objek dan tatasusunan
Untuk meningkatkan ketepatan pengesahan, semakan tambahan berikut boleh dipertimbangkan:
private static bool IsValidJson(string strInput) { if (string.IsNullOrWhiteSpace(strInput)) { return false; } strInput = strInput.Trim(); if ((strInput.StartsWith("{") && strInput.EndsWith("}")) || // 对象 (strInput.StartsWith("[") && strInput.EndsWith("]"))) // 数组 { try { var obj = JToken.Parse(strInput); return true; } catch (JsonReaderException) { return false; } catch (Exception) { return false; } } else { return false; } }
Alternatif yang tidak memerlukan JSON.NET
Jika anda tidak dapat menggunakan JSON.NET, pertimbangkan untuk menggunakan ruang nama System.Json dalam .NET:
string jsonString = "someString"; try { var tmpObj = JsonValue.Parse(jsonString); } catch (FormatException) { // 无效的 JSON 格式 } catch (Exception) { // 其他异常 }
Sila ingat bahawa kaedah ini memerlukan pakej System.Json NuGet dipasang.
Pendekatan bukan kod
Untuk pengesahan pantas rentetan JSON kecil, anda boleh menggunakan alatan dalam talian seperti JSONLint. Mereka boleh mengenal pasti ralat sintaks JSON dan memberikan maklum balas yang berguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Rentetan JSON Menggunakan JSON.NET atau Kaedah Alternatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!