当前位置: 首页 > 面试题库 >

帮助将JSON用于API

薛欣荣
2023-03-14
问题内容

我真的不了解该API应该如何工作,因为我以前从未使用过JSON。

该文档没有给出任何示例,但是它说该API的端点同时支持POST和GET操作,并返回JSON。

我的问题是,我不确定如何实现此功能,假设我只想将所有数据提取到一个简单的页面中,例如:

城市: 塞勒姆

邮政编码: 97302

等等…

我不太确定从哪里开始:

POST http:// [您的RepMan主机名] /api/v1/account/reputation/current.json

GET http:// [您的RepMan主机名] /api/v1/account/reputation/current.json

以下是POST正文或GET查询字符串的参数列表。所有值均应按照常规POST正文或GET查询字符串进行正确编码。

| Field      | Ordinality | Datatype | Description
| pid        | 1          | string   | This is your partner ID as provided by us to access the API.
| apiKey     | 1          | string   | This is your API Key as provided by use to access the API.
| srid       | ?          | string   | This is the unique RepMan ID for the account. Either this or customerId must be specified.
| customerId | ?          | string   | This is your unique customer id for the account. Either this or srid must be specified.

对于200的响应,您将收到以下JSON内容:

{
account : {
    srid        : "DW5SRB36",
    lastName    : "Morimoto",
    pid         : "SRP",
    customerId  : null,
    firstName   : "Masaharu"
},
company : {
    city        : "New York",
    postalZip   : "10011",
    provState   : "NY",
    name        : "Morimoto",
    address     : "88 10th Ave"
},
visibility : {
    found       : 18,
    missing     : 9
},
reviews : {
    1star       : 5,
    4star       : 37,
    3star       : 44,
    5star       : 66,
    2star       : 5
},
competition : {
    Restaurants in New York : {
        Megu    : 1.82,
        Morimoto: 52.95,
        Matsuri : 18.13,
        Buddakan: 0.93,
        Nobu    : 26.17
    }
},
social : {
    checkins            : 5015,
    twitter_followers   : 8154,
    facebook_likes      : 1134
},
mentions : {
    07-09-2011 : {
        positive    : 0,
        neutral     : 0,
        negative    : 0
    },
    07-07-2011: {
        positive    : 2,
        neutral     : 3,
        negative    : 0
    },
    07-05-2011: {
        positive    : 1,
        neutral     : 2,
         negative   : 0
    },
    07-11-2011: {
        positive    : 2,
        neutral     : 2,
        negative    : 0
    },
    07-06-2011: {
        positive    : 5,
        neutral     : 2,
        negative    : 0
    },
    07-10-2011: {
        positive    : 3,
        neutral     : 4,
        negative    : 0
    },
    07-08-2011: {
        positive    : 1,
        neutral     : 5,
        negative    : 0
    }
}
}
}

问题答案:

首先要尝试的是在网络浏览器中尝试一些请求。从那里,应该很清楚您需要做什么。

从您的基本网址开始:

http://[your RepMan hostname]/api/v1/account/reputation/current.json

显然,您必须插入主机名代替[your RepMan hostname]。从那里,我们添加一个查询字符串。您之前已经看过这些内容……它们?位于URL中的问号之后,并包含形式为的键/值对key1=value1&key2=value2。你有4个变量插件:
pidapiKeysrid,和customerId。不知道此Web服务的作用,很难帮助您知道要插入的值,但是这里有一个示例:

http://example.com/api/v1/account/reputation/current.json?pid=12345&apiKey=asdf&srid=34&customerid=98765

使用所需的参数手动构建一个有效的URL,然后在浏览器中进行尝试。完成此操作后,您将看到一些文本结构以JSON格式返回。这是与JavaScript解析器兼容的文本,但实际上与JavaScript分开。

现在,如何使用PHP进行操作?一种快速的方法是使用file_get_contents()json_decode()

$response = file_get_contents('plug your URL in here');
$responseObject = json_decode($response);
print_r($responseObject);

基本上,file_get_contents()将在该URL上加载数据,并json_decode()采用对象的文本表示形式并将其转换为真实的PHP对象。从那里您可以做到echo $responseObject->social->checkins或类似。

现在,您应该研究使用cURL而不是file_get_contents()。这将使您对请求有更多的控制,并使您更轻松地访问响应状态代码。当您以后要为该请求设置时间限制或需要处理失败时,这将非常重要。另外,请确保使用urlencode()http_build_query()构建查询字符串。这样,保留字符(例如空格)将转换为其编码形式,例如%20



 类似资料:
  • Object: JSON JSON解码器和编码器。 JSON Method: encode 转换一个对象或数组为JSON字符串。 语法: var myJSON = JSON.encode(obj); 参数: obj - (object) 转换为字符串的对象。 返回: (string) JSON字符串。 示例: var fruitsJSON = JSON.encode({apple: 'red',

  • 本文向大家介绍winforms 使用帮助类显示帮助,包括了winforms 使用帮助类显示帮助的使用技巧和注意事项,需要的朋友参考一下

  • 记住命令,特别是命令的用法挺难,不同的命令都有各自的可以使用的参数。一般的命令都支持 --help 参数,它会为你显示命令的帮助信息,比如可用的参数,参数的作用等等。或者也可以使用 man 命令查看命令的帮助手册。 查看帮助,例如看一下 curl 命令的帮助信息: curl --help 返回信息截取: Usage: curl [options...] <url> Options: (H) me

  • 我有以下结构: 一些经理阶层 更新: 我更改了我的类,但现在dao对象为空。

  • 问题内容: 例如,如果我有一个带有帮助器类的类来执行其某些功能,那么使其成为内部类是否有意义。 在上述情况下,将in 作为内部类有意义吗?道歉,如果这听起来很愚蠢,但我对用例不感到困惑。 问题答案: 是的,使其成为内部类非常有意义。如果没有其他类需要它,请将其设为私有。如果不需要独占访问外部类的成员,请使其成为静态嵌套类,因为这样将需要较少的内存空间。 查看官方教程中的建议- 如果您需要访问封闭实

  • 我在一个JPanel中有3个组件,其中GridBagLayout是JPanel的LayoutManager,并在这3个组件上使用GridBagConstraints。 使用当前代码(如下所示),3个元素会正确地出现在面板上。问题是第一个组件是一个JLabel,它有时很长,如果是这样的话,它就会扩展,使其他两个组件变小。 我的目标是拥有一个GridBagLayout为1行4列的JPanel,其中第一