【问题标题】:my JSON url not validating我的 JSON url 没有验证
【发布时间】:2018-07-18 09:03:09
【问题描述】:

我们使用php和my sql生成json数据并显示json数据

我觉得 json 数据正确且格式正确,当我使用正确 json 格式的 php 文件显示结果时,json 验证器显示错误,但是当我将 json 数据保存在 json 文件中时,则没有错误

请检查以下 url,我使用 stack.hu 来测试我的 json url,我需要这个 json url 从 android 代码中获取数据

http://jsonviewer.stack.hu/#http://www.yuvajobs.com/mobileapp/test_json.php

http://jsonviewer.stack.hu/#http://www.yuvajobs.com/mobileapp/test1.json

两者具有完全相同的数据,但 .php 一个显示错误,但 .json 一个工作

因为我需要创建一个 api,如果用户搜索任何内容,我们会在 db 中传递该单词并获取结果,如果我们为每个单词创建单独的 json,那么对我们来说就是地狱

我们想要什么

我们是一个工作门户,我们正在制作android应用程序,我们使用json来获取数据,我们有不同的工作类别,当任何人点击任何工作类别时,它都会向我的php发送请求,我的php会在其中搜索数据db根据类别将所有结果存储在数组中,我们将数组数据编码为json并显示

【问题讨论】:

  • 您的 php.ini 的回复标头中有一个Content-Type: text/html; charset=UTF-8。通过 PHP 或 .htaccess 文件设置标题。

标签: php json


【解决方案1】:

如果您要发送 JSON,您还应该在 Content-Type 标头中声明。目前您使用的默认 Content-Type 为 text/html,这不适合这种情况。相反,您应该将其设置为 application/json:

header('Content-Type: application/json');

【讨论】:

  • 我们已经尝试过了,但是,错误,我觉得如果它的 php 文件显示错误,你可以用任何 json url 测试器测试我的 php url 吗?
  • 您是否验证了header() 的使用,所以它在请求中出现了?
  • 我如何验证
  • 我们使用错误显示功能,不显示错误。如果标题有任何错误,那么它将显示警告和错误。但没有
  • 这不是关于是否显示错误,而是关于发送的实际标头。如果您在浏览器中打开开发工具并查看网络选项卡,则可以单击请求并查看标题。应该有一个叫Content-Type。这必须不是text/html,而是`application/json'
【解决方案2】:

即使您已修复内容类型,http://jsonviewer.stack.hu 仍会返回错误。它抱怨由于某些“不完整的分块编码”错误而无法读取 JSON,但这是当它将您的 URL 发送到其服务器以请求您的 JSON 服务器端时。

这两个 URL 的响应之间存在一些差异,.json 响应包含额外的标头(Accept-rangesLast Modified)。您使用的 JSON 查看器会将这些标头转发到其服务器,因此这可能是问题所在。

您的 API 在使用 https://client.restlet.com/ 进行测试时有效。

独立客户端可能更容易用于测试您的 Android api。如InsomniaPostman。还有与这些类似的浏览器扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多