加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP JSON解码:带有’$’问题的数组

发布时间:2020-12-13 14:13:15 所属栏目:PHP教程 来源:网络整理
导读:我有以下 JSON文件作为输入, { "$type": "NanoWebInterpreter.WebInputData,NanoWebInterpreter","NBBList": { "$type": "System.Collections.Generic.List`1[[monoTNP.Common.NBB,monoTNP.Common]],mscorlib","$values": [ { "$type": "monoTNP.Common.NBB,
我有以下 JSON文件作为输入,
{
  "$type": "NanoWebInterpreter.WebInputData,NanoWebInterpreter","NBBList": {
    "$type": "System.Collections.Generic.List`1[[monoTNP.Common.NBB,monoTNP.Common]],mscorlib","$values": [
      {
        "$type": "monoTNP.Common.NBB,monoTNP.Common","ID": "id-0065-00000003","MPList": {
          "$type": "System.Collections.Generic.List`1[[monoTNP.Common.MP,"$values": [
            {
              "$type": "monoTNP.Common.EllipticalMP,"Eccentricity": 1.0,"ID": "id-0065-00000006","ParticleIndex": -1,"DispersionInteractionStrength": 0.0,"DispersionInteractionRange": 2.5,"CharacteristicSize": 0.0,"CenterOfMass": "<0,0>","OrientationVector": "<>"
            },{
              "$type": "monoTNP.Common.CubeMP,"ID": "id-0065-00000005",{
              "$type": "monoTNP.Common.CircularMP,"ID": "id-0065-00000004","OrientationVector": "<>"
            }
          ]
        },

等等

我的最终目标是递归地跟踪这个树,用< ul>包装每个键/对象名称.标签,以及某种< form>中“ParticleIndex”级别的属性结构,但我无法弄清楚如何索引到两个’$values’数组.

这是我一直在操作以学习如何访问每个元素(对象或数组)的代码:

foreach ($json->NBBList->'$values'[0] as $key => $value){
    var_dump($key);
    echo "n".var_dump($value);
    echo "nnn";
}

这显然不起作用,因为值的索引在字符串之外,但是当它在内部时,PHP将其解释为字符串的一部分.

有没有办法让我能够索引’$values’数组的每个元素,并最终在for循环中?

我在想使用JSON解码的“真实”属性可能是一个更好的解决方案……

您可以使用以下表示法访问名称包含特殊字符的对象属性:
$json->NBBList->{'$values'}[0]

我不认为这种行为在任何地方都有记录,但你可以在PHP grammar中找到它(参见variable_name的定义,它在object_property中使用的object_dim_list中使用).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读