0

検索結果を表す JSON をサーバーから取得しています。PHP検索エンジンであるSphiderから取得しています。興味があれば、最初にここでJSON を取得することについて既に質問しました。

したがって、この JSON は問題ないように見えます。このバリデーターに入れると、「無効な文字が見つかりました。[コード18、構造66]」と表示されます。これが何を意味するのかわかりませんが、不平を言っている行をもっと詳しく見る必要があると思いました変なキャラがいたら 私が見つけたのは、スペースがあるはずの 0x20 (スペース) だけでした。

さて、最大のヒントは次のとおりです。バリデーターの出力から「無効な」JSONを入力にコピーして再度実行すると、JSONが有効であると言って動作します。それをどうすればいいのかわからない。

では、バリデーターとは何を意味するのでしょうか。また、このテキストはデータベースから取得されますが、「無効な文字」が出力される原因は何ですか?

JSONは次のとおりです。

{   "result_report":"Displaying results 1 - 2 of 2 matches (0.03 seconds) ",  "results":[    {   "idented":"false",   "num":"1",  "weight":"[100.00%]",  "link":"http://www.avtainsys.com/articles/PHP_Markdown",  "title":"PHP <b>Markdown</b>",   "description":"  Full documentation of <b>Markdown</b>'s syntax is available on John's <b>Markdown</b> page: http://daringfireball.net/projects/<b>Markdown</b>/   Installation and Requirement  PHP <b>Markdown</b> requires PHP version 4.0.5 or later.  WordPress  PHP <b>Markdown</b>",  "link2":"http://www.avtainsys.com/articles/PHP_Markdown",  "size":"31.0kb" },  {   "idented":"false",   "num":"2",  "weight":"[3.46%]",  "link":"http://www.avtainsys.com/articles",  "title":"Recent Articles",   "description":" systems         PHP <b>Markdown</b>     by Some Guy     Some information regarding using the PHP <b>Markdown</b> library, it's deployment, and some things to watch out for.            MD Example      by Hassan El-Mehalawi       A simple example",  "link2":"http://www.avtainsys.com/articles",  "size":"3.3kb" },  {  "num":"-1" }  ],  "other_pages":[   {  "title":"1",  "link":"search.php?query=markdown&start=1&search=1&results=10&type=and&domain=",      "active":"true"     }     ]  }

そして、ここでフォーマットされています:

{
   "result_report":"Displaying results 1 - 2 of 2 matches (0.03 seconds) ",
   "results":[
      {
         "idented":"false",
         "num":"1",
         "weight":"[100.00%]",
         "link":"http://www.avtainsys.com/articles/PHP_Markdown",
         "title":"PHP <b>Markdown</b>",
         "description":"  Full documentation of <b>Markdown</b>'s syntax is available on John's <b>Markdown</b> page: http://daringfireball.net/projects/<b>Markdown</b>/   Installation and Requirement  PHP <b>Markdown</b> requires PHP version 4.0.5 or later.  WordPress  PHP <b>Markdown</b>",
         "link2":"http://www.avtainsys.com/articles/PHP_Markdown",
         "size":"31.0kb"
      },
      {
         "idented":"false",
         "num":"2",
         "weight":"[3.46%]",
         "link":"http://www.avtainsys.com/articles",
         "title":"Recent Articles",
         "description":" systems       PHP <b>Markdown</b>    by Some Guy   Some information regarding using the PHP <b>Markdown</b> library, it's deployment, and some things to watch out for.         MD Example    by Hassan El-Mehalawi   A simple example",
         "link2":"http://www.avtainsys.com/articles",
         "size":"3.3kb"
      },
      {
         "num":"-1"
      }
   ],
   "other_pages":[
      {
         "title":"1",
         "link":"search.php?query=markdown&start=1&search=1&results=10&type=and&domain=",
         "active":"true"
      }
   ]
}

明確にするために、フォーマットされた JSON は、上記でリンクしたフォーマッター/バリデーターでフォーマットされました。これは、元の「無効な」出力を入れた後に得られる出力です。

上記のフォーマットされていない JSON が実際に有効であることが確認されているため、上記の JSON を出力する URL は次のとおりです。

http://avtainsys.com/sphider/search.php?query=markdown&search=1

4

1 に答える 1

4

タブに関係しています。バリデータによって識別された文字列内の空白をクリーンアップした後、(実際のソースから) 解析します。技術的には、タブは\tJSON 文字列のようにエスケープする必要があります (ただし、一部のパーサーは気にしない可能性があります)。

于 2012-06-07T20:43:14.397 に答える