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

在json_decode /多维数组之后访问JSON数组

韶弘壮
2023-03-14
问题内容

我从Twitter api进行搜索,使用file_get_contents获取数据,然后传递给json_decode,这给了我这种数组结构。

{"results":[
     {
     "from_user":"A-user-name",
     "from_user_id":457304735,
     "text":"Ich R U #BoysNoize #SuperRola",

          "entities":{

                 "urls":[{
                        "url":"http:\/\/t.co\/WZnUf68j",
                        "expanded_url":"http:\/\/instagr.am\/p\/Vz4Nnbnjd6\/",
                        }]

     }]
]

对于提取的每条推文都将重复执行此操作。现在,我可以使用foreach循环访问用户名和文本,并将结果的每个实例分配给变量,然后从变量中提取数据。

foreach($jsonArr['results'] as $item){

// Takes the Array jsonArr and for every results heading creates an $item

    $user = mysql_real_escape_string($item['from_user']);
    $text = mysql_real_escape_string($item['text']);

这样可以保存正确的变量,但是,我似乎无法在结果内的实体数组中获取数据。如果我打印出诸如用户名或文本之类的Entities变量,则会得到

ArrayArrayArrayArrayArrayArrayArrayArrayArrayArray

因此,它保存着返回的每个结果的数组,但是我到底是如何访问它的呢,我一直在弄乱我知道的其他一些访问数组数据的方法,但是它们似乎都陷入了困境。如何获得这些价值或将其与foreach集成的任何帮助将不胜感激


问题答案:

假设您选择将JSON解码为多维数组而不是对象:

foreach ($results as $tweet) {
    $user = $tweet["from-user"];
    $text = $tweet["text"];

    $entities = $tweet["enities"];
    $urls = $entities["urls"];

    foreach ($urls as $url) {
        echo $url["expanded_url"];
    }
}

等等



 类似资料:
  • 问题内容: 我有一个像这样的JSON数组: 我想使用jQuery 能够返回每个数组值的值,但是我不确定如何访问它们。 到目前为止,我有以下jQuery代码: 我该如何使用jQuery? 问题答案: 的在JSON表示一个对象。对象的每个属性均以逗号分隔。像这样,可以通过使用句点运算符的键来访问属性值。的在JSON表示一个数组。数组值可以是任何对象,并且值以逗号分隔。要遍历数组,请使用带有索引的标准f

  • 问题内容: 我正在尝试将JSON字符串解码为数组,但出现以下错误。 致命错误:不能在第6行的C:\ wamp \ www \ temp \ asklaila.php中将stdClass类型的对象用作数组 这是代码: 问题答案: 根据文档,您需要指定是否要使用关联数组而不是中的对象,这是代码:

  • 问题内容: 我仍在Go的学习过程中,但是在涉及JSON响应数组时遇到了麻烦。每当我尝试访问“对象”数组的嵌套元素时,Go都会抛出异常(类型接口{}不支持索引) 出了什么问题?将来如何避免犯此错误? http://play.golang.org/p/duW-meEABJ 编辑:固定链接 问题答案: 如错误所述,接口变量不支持索引。您将需要使用类型断言来转换为基础类型。 当解码为变量时,JSON模块将

  • MATLAB中的多元数组MATLAB是下标多于两个的数组。可以调用带有两个以上变元的zeros, ones, rand, 或randn函数来产生。例如, R = randn(3,4,5); 生成一个3*4*5的数组,共有3x4x5 = 60个正态分布的随机元素。 三维数组可能表示三维物理数据,譬如房间的温度,取样于一个长方形网格。或者,可表示一个矩阵序列A(k),或依赖时间变化的矩阵A(t)。在

  • 问题内容: 假设我有: 使我得到数组的 第i 行(例如)。如何访问第 ith 列?(例如)。另外,这将是一项昂贵的操作吗? 问题答案: 同样, 使您可以访问行。NumPy参考资料的第1.4节(索引)对此进行了介绍。这很快,至少以我的经验而言。它肯定比循环访问每个元素要快得多。

  • 问题内容: 这是deepbit.net返回给我的比特币矿工的json。我正在尝试访问worker数组并循环进行以打印myemail@gmail.com worker的统计信息。我可以访问Confirmed_reward,hashrate,ipa和payout_history,但是在格式化和输出worker数组时遇到问题。 谢谢您的帮助 :) 问题答案: 我假设您已经解码了使用json_decode