PHP json_encode() 结果显示 JSONLint 错误



我在验证json_encode()函数的输出时遇到问题。

我正在使用 cURL 拉入 XML 提要,将其转换为数组,并使用 json_endode() 将该数组转换为 JSON。 我饶了你cURL的东西:

  foreach ($xmlObjects->articleResult as $articleResult) {
    $article = array(
      "articleResult" =>
      array(
        'articleId' => (string)$articleResult->articleId,
        'title' => (string)$articleResult->title,
        'subhead' => (string)$articleResult->subhead,
        'tweet' => (string)$articleResult->tweet,
        'publishedDate' => (string)$articleResult->publishedDate,
        'image' => (string)$articleResult->image
      ),
    );
    $json = str_replace('/','/',json_encode($article));
    echo $json;
  }

这给了我一个 JSON 读数:

{
    "articleResult": {
        "articleId": "0001",
        "title": "Some title",
        "subhead": "Some engaging subhead",
        "tweet": "Check out this tweet",
        "publishedDate": "January 1st, 1970",
        "image": "http://www.domain.com/some_image.jpg"
    }
}
{
    "articleResult": {
        "articleId": "0002",
        "title": "Some title",
        "subhead": "Some engaging subhead",
        "tweet": "Check out this tweet",
        "publishedDate": "January 1st, 1970",
        "image": "http://www.domain.com/some_image.jpg"
    }
}

这会给我一个 JSONLint 错误说:

Parse error on line 10:
..._120x80.jpg"    }}{    "articleResult
---------------------^
Expecting 'EOF', '}', ',', ']'

因此,我自然会添加逗号,这给了我一个文件结束的期望:

Parse error on line 10:
..._120x80.jpg"    }},{    "articleResu
---------------------^
Expecting 'EOF'

我是 JSON 的新手,但我已经检查了网站和一些资源以获取正确的 JSON 格式和结构,从我可以看到我的读数遵循指南。 有什么指示吗?

我检查过的资源:

自然 JSON.org

维基百科有很好的文档记录页面

W3Resource对结构有很好的解释。

杰森林特

您将 2+ 对象编码为 json 字符串,您需要[ ]来包装它们

正确的语法是

[ 
   { /* first object */ }
 , { /* second object */ }
 , { /* third object */ }
]

您需要注意的事项是

  • [ ]包装
  • 用逗号分隔对象

溶液

$json = array();
foreach ($xmlObjects->articleResult as $articleResult) {
  $article = array(
    "articleResult" =>
    array(
      'articleId' => (string)$articleResult->articleId,
      'title' => (string)$articleResult->title,
      'subhead' => (string)$articleResult->subhead,
      'tweet' => (string)$articleResult->tweet,
      'publishedDate' => (string)$articleResult->publishedDate,
      'image' => (string)$articleResult->image
    ),
  );
  $json[] = $article;
}
echo json_encode($json);

相关内容

  • 没有找到相关文章

最新更新