2013-12-13 21 views
3

我有一個服務器返回的JSON,我想用JSON Schema驗證它(可能是草案V3,可以更改)。如何驗證Objective-C中的JSON模式?

我想也許NSDictionary本來的功能,但它似乎沒有沒有,這是我的嘗試:

[self.dictionary ]

(其中dictionary是一個NSDictionary)

有間沒有」用任何方法驗證NSDictionary與我能找到的JSON模式。我該怎麼做呢?

請注意,您可以在objective-c中編寫C和C++,因此這些標記出現在問題中。

+0

我在建的方式做到這一點知道的不,也許有一個第三方解決方案,但我的猜測是,你將不得不自己寫 –

+0

您可能試過編輯已關閉的問題以重新打開它。 – bummi

+1

'從服務器返回的JSON,我想根據JSON模式進行驗證,並非所有的JSON對象都是字典。 –

回答

4

沒有找到一個滿意的回答了這個問題之後 - 我走了,在本機的Objective-C開發這裏我自己的架構驗證:https://github.com/samskiter/KiteJSONValidator

我剛剛拿到了它傳遞的所有測試在JSON-Schema測試套件中,所以我發佈了v0.1。

它是在MIT許可下發布的,所以我希望這是有用的人......

6

Objective-C是C的超集。JSON Schema站點列出了一個C庫wjelement,您可以調整它。

的例子函數調用

WJESchemaValidate(schema, json, schema_error, schema_load, NULL, format) 

你需要提供一個C字符串,而不是NSString,自然。

注:之後我寫的答案,我意識到你是罰款從一開始:)

+0

是的,人們不斷刪除我的C標籤,我不允許暗示你建議C庫(或我的問題將被刪除。 – Sam

+0

看起來不錯,雖然不是最好的,因爲我必須將我的NSDictionary重新恢復爲一個字符串然後到一個C字符串,但它看起來像一個非常成熟的庫,所以它應該有希望值得。謝謝 – Sam

+1

@Sam,最好只使用'c'標籤,然後。 –

1

對於任何人誰是尋找一個MIT純C行貨JSON模式驗證,「JsonSchemaValidator」做了很好的工作和在這裏可供選擇:https://bitbucket.org/nut_code_monkey/jsonschemavalidator

+0

這很好,但看起來不像它可以解析模式文件,正如JSON-Schema規範所定義的。儘管這是解決問題的好方法,因爲它已經輸入並驗證了描述語言。 – Sam