2016-08-20 10 views
1

{:[{},{}]}のような文字列がリテラルなしでJSONオブジェクトとして表現されるかどうかをチェックする方法は?リテラルのないJSON文字列パーサー

入力には次の制約があります。 1. JSONオブジェクトは '{'で始まり、 '}'で終わる必要があります。 2.キーと値は ':'で区切る必要があります。 3. '、'は追加のJSONプロパティを示します。 4.配列はJSONオブジェクトのみで構成されます。それ自身では "キー": "値"のペアを含むことはできません。

そして、それはこのようにintrepretedする:JSON can be found hereため

{ 
"Key": [{ 
"Key": "Value" 
}, { 
"Key": "Value" 
}] 
} 
+0

{{} 'はおそらくリテラルでもあります: – Thilo

+0

文字列が有効なJSON(オブジェクトを解析する)であるかどうかをチェックしますか? – Thilo

+0

私は '' key''、 '' value''、 '' abc'''、 '' 123''などの何ものも意味しませんでした。 –

答えて

2

構文仕様。

それは[],で区切られた0以上の要素を含むことがあり、{}は有効な要素であるため、[{},{}]が正当であることを示しています。しかし、あなたの例の最初の部分は無効です - :は、その前に文字列を持つ必要があります。空の文字列であることは合法ですが、nullであることは合法ではなく、完全に欠落している要素の解釈はあいまいです。

So. {"":[{},{}]}は合法ですが、{:[{},{}]}はありません。

関連する問題