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

在PHP中访问JSON对象名称

东郭子默
2023-03-14
问题内容

我有以下JSON:

{
  "nickname": "xadoc",
  "level": 4,
  "loc": "Tulsa, OK, USA",
  "score": 122597,
  "money": 29412.5,
  "streetNum": 8,
  "streets": {
    "-91607259\/387798111": {
      "name": "Alam\u00e9da Ant\u00f3nio S\u00e9rgio",
      "value": 243,
      "type": 1
    },
    "-91016823\/388182402": {
      "name": "Autoestrada do Norte",
      "value": 18304,
      "type": 1
    },
    "-86897820\/399032795": {
      "name": "Autoestrada do Norte",
      "value": 12673,
      "type": 1
    },
    "-973092846\/479475465": {
      "name": "19th Ave",
      "value": 7794,
      "type": 1
    },
    "-974473223\/480054888": {
      "name": "23rd Ave NE",
      "value": 33977,
      "type": 1
    }
  }
}

我拼命尝试访问动态对象名称,如"-91607259\/387798111",该怎么办?

现在我有:

$jsonurl = "http://www.monopolycitystreets.com/player/stats?nickname=$username&page=1";
$json = file_get_contents($jsonurl,0,null,    $obj2 = json_decode($json);

foreach ( $obj2->streets as $street )
{   
    //Here I want to print the "-91607259\/387798111" for each street, please help
    //echo $street[0]; gives "Fatal error: Cannot use object of type stdClass as array"
    //echo $street gives "Catchable fatal error: Object of class stdClass could not be converted to string"
    echo '<th>'.$street->name.'</th><td>'."M ".number_format($street->value, 3, ',', ',').'</td>';
}

问题答案:

我可以想象,最简单的方法是解码为关联数组而不是stdClass对象

$obj2 = json_decode( $json, true );

foreach ( $obj2['streets'] as $coords => $street )
{   
  echo $coords;
}


 类似资料:
  • 问题内容: 我有一个要从ExtJS界面发布到PHP的JSON对象。我从那里得到物体 该对象将包含3个数组,我可以查看是否 我需要获取每个数组并从中构建SQL查询。我的第一个障碍是将数组移出对象,尽管这可能是不必要的。这是我正在使用的代码块: 我没有正确创建数组。我也尝试过 那也不行。我确定我在这里容易错过一些事情。同样,这可能是不必要的,因为我可能可以直接访问它们。我需要通过遍历数组并将每个键附加

  • 问题内容: 如您所见,该回调函数从控制器获取数据。 例如: 在这种情况下,我的第一个警报给了我未定义的内容,第二个/第三个警报弹出窗口显示为: 如何按名称访问值,以便我的第一个警报填写的值是? 问题答案: 代替解析JSON,您可以执行以下操作: 要访问JSON的属性,请执行以下操作: 为什么需要数据,因为数据是一个数组,所以需要对其内容进行检索(第一个元素),它为您提供了一个object 。 并访

  • 问题内容: JSON编码的Google API返回了这样的对象 谁知道我该如何获取价值? 显然返回 注意:未定义的变量:在/ usr / local / … 致命错误:无法访问/ ....中的空属性 问题答案: 由于属性的名称是string ,因此可以这样访问它: 另外,您可以将属性的名称放在变量中,然后像这样使用它: 您可以在repl.it上看到它们的实际作用:https ://repl.it/

  • 可以使用点号(.),或中括号([])来访问 JSON 对象的值。 使用点号访问对象时,直接使用对象的 key 来访问, key 无须放在双引号中。如: <script>   var myObj, x;   myObj = { "github": "https://github.com/leiqikui" };   x = myObj.github;   document.write(x); </

  • 我想要这个sql查询结果(从日志文件,我希望它是准确的) 变成这样 我尝试了array_push和array_combine,但我是PHP新手,目前为止没有成功。 简短:我想向对象数组添加键(从1开始)。 一次尝试 但是$arr_结果看起来像第一个代码示例。

  • 我是json的新手,所以我从ajax调用中得到一个json响应 现在,我只能循环json对象 这是我的json 有人能帮忙吗