【问题标题】:how to get json value that has no key如何获取没有键的json值
【发布时间】:2015-04-05 07:34:06
【问题描述】:

我正在使用 php 来获取 json 值,并且在循环数据和回显 SteamName、Level、Experience 等方面没有问题。但是我不知道如何回显 Steamid 编号 7656119801319... 每个配置文件。

json 文件:

{
  "FURNACES": {},
  "PROFILE": {
    "76561198013191579": {
      "SteamName": "Cayos",
      "Level": 22,
      "Experience": 1592,
      "Agility": 22,
      "Strength": 22,
      "Intelligence": 22,
      "StatsPoints": 66,
      "SkillPoints": 2,
      "Skills": {
        "lumberjack": 20
      },
      "Preferences": {
        "ShowXPMessagePercent": 0.25,
        "ShowCraftMessage": true,
        "UseBlinkArrow": true,
        "AutoToggleBlinkArrow": true
      }
    },
    "76561198113765447": {
      "SteamName": "CaptainCheesy",
      "Level": 31,
      "Experience": 3576,
      "Agility": 31,
      "Strength": 70,
      "Intelligence": 70,
      "StatsPoints": 15,
      "SkillPoints": 5,
      "Skills": {
        "miner": 8,
        "lumberjack": 10,
        "hunter": 8
      },
      "Preferences": {
        "ShowXPMessagePercent": 0.25,
        "ShowCraftMessage": true,
        "UseBlinkArrow": true,
        "AutoToggleBlinkArrow": true
      }
    },
    "76561198141845337": {
      "SteamName": "Carrot",
      "Level": 3,
      "Experience": 409,
      "Agility": 3,
      "Strength": 3,
      "Intelligence": 3,
      "StatsPoints": 9,
      "SkillPoints": 3,
      "Skills": {},
      "Preferences": {
        "ShowXPMessagePercent": 0.25,
        "ShowCraftMessage": true,
        "UseBlinkArrow": true,
        "AutoToggleBlinkArrow": true
      }
    },
    "76561198012539649": {
      "SteamName": "Booglee",
      "Level": 3,
      "Experience": 110,
      "Agility": 3,
      "Strength": 3,
      "Intelligence": 3,
      "StatsPoints": 9,
      "SkillPoints": 3,
      "Skills": {},
      "Preferences": {
        "ShowXPMessagePercent": 0.25,
        "ShowCraftMessage": true,
        "UseBlinkArrow": true,
        "AutoToggleBlinkArrow": true
      }
    },
    "333228975": {
      "SteamName": "SYN Gaurd",
      "Level": 0,
      "Experience": 0,
      "Agility": 0,
      "Strength": 0,
      "Intelligence": 0,
      "StatsPoints": 0,
      "SkillPoints": 0,
      "Skills": {},
      "Preferences": {
        "ShowXPMessagePercent": 0.25,
        "ShowCraftMessage": true,
        "UseBlinkArrow": true,
        "AutoToggleBlinkArrow": true
      }
    }
  }
}

我的 PHP 代码:

$url = 'C:\Users\plosey\Desktop\GameServers\Rust\steam\server_syn1\server\syn1\oxide\data\Hunt_Data.json';  //Url to the cars api
$content = file_get_contents($url);
$json = json_decode($content);
    foreach($json->PROFILE as $user) {
          echo $user->SteamName;  
          echo $user->NEED STEAM ID HERE;  // This is the line that is not correct.
} 

所以简而言之,我不仅需要回显 SteamName,还需要来自同一配置文件的 Steamid 编号。

【问题讨论】:

  • Steamid 号码是每个配置文件的key。为了在 PHP 中遍历数组时访问每个元素的键,请使用语法$key => $value

标签: php json steam


【解决方案1】:

代替

foreach($json->PROFILE as $user) {

使用

foreach ($json->PROFILE as $steamid => $user) {

【讨论】:

    【解决方案2】:

    尝试下面的代码来打印 id。 $stremId 将打印您的 ID。您可以将其替换为任何变量名。

    $json = json_decode($json);
    foreach($json->PROFILE as $streamId => $user) {
              echo $user->SteamName;
              echo $streamId;
    } 
    

    【讨论】:

      【解决方案3】:

      试试这个

      foreach($json->PROFILE as $key => $user) {
              echo $key .' => '.$user->SteamName."<br/>";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-27
        • 2019-04-25
        • 2020-05-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多