javascript - json和多维数组

标签 javascript arrays json multidimensional-array

我有一个这样的多维数组

Array
(
    [1] => Array
        (
            [product_id] => 1
            [product_model] => HFJ5G1.5
            [product_type] => plat
            [product_return] => graviteits

        )

    [2] => Array
        (
            [product_id] => 2
            [product_model] => HHJ5S2.5
            [product_type] => holle plunjer
            [product_return] => veer       

        )
    );  //Only 2 are shown here i have around 110 values

然后我将它编码为 json

json_encode($array);

生成的 jsonString 是这样的

{"1":{"product_id":"1","product_model":"HFJ5G1.5","product_type":"plat","product_return":"graviteits"},"2":{"product_id":"2","product_model":"HHJ5S2.5","product_type":"holle plunjer","product_return":"veer"}}

当我做 alert(jsonString.length);结果是 4 但我希望结果是 2 我做错了什么。

最佳答案

对象字面量没有.length

您可以使用 this method 计算属性:

var count = 0;

for (i in jsonString) {
    if (jsonString.hasOwnProperty(i)) {
        count++;
    }
}

alert(count); //count shall have length for you

因为你的数组没有数字索引(从 0 开始),它假设你使用了一个关联数组,因此他们转储了一个项目对象而不是一个项目数组

要将它们转换为数字索引,您所要做的就是使用 array_values在将它们编码为 json 之前:

json_encode(array_values($array));

然后 json 将是一个数组.. then you can use length

来自这里:

Array(
[1] => Array(
        [product_id] => 1
        [product_model] => HFJ5G1.5
        [product_type] => plat
        [product_return] => graviteits
    )
[2] => Array(
        [product_id] => 2
        [product_model] => HHJ5S2.5
        [product_type] => holle plunjer
        [product_return] => veer       
    )
);

使用 array_values() 变成这样,注意每个项目的索引:

Array(
[0] => Array(
        [product_id] => 1
        [product_model] => HFJ5G1.5
        [product_type] => plat
        [product_return] => graviteits
    )
[1] => Array(
        [product_id] => 2
        [product_model] => HHJ5S2.5
        [product_type] => holle plunjer
        [product_return] => veer       
    )
);

然后编码为json并存储到jsonString:

jsonString = [
    {
        "product_id": "1",
        "product_model": "HFJ5G1.5",
        "product_type": "plat",
        "product_return": "graviteits"
    },
    {
        "product_id": "2",
        "product_model": "HHJ5S2.5",
        "product_type": "holle plunjer",
        "product_return": "veer"
    }
];

alert(jsonString.length);

关于javascript - json和多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306309/

相关文章:

javascript - cypress 登录后等待重定向

javascript - 销毁具有多个返回值的 Custom React Hooks 的更好方法?

javascript - 如何在 Vue Routes 应用程序中动态更改颜色?

javascript - 无法在 JSON 对象内动态添加值

json - 使用 Jackson 映射可以具有不同类型的 JSON 字段?

javascript - 如何比较,然后在 AJAX 中更新(如果需要)

javascript - JS 数组循环次数为 1 Off

c - 将值存储到结构数组值 C

c - 需要帮助将 txt 文件重定向到 3 个不同大小的不同结构数组(结构中的元素数量)

javascript - Google Places API Web 服务服务器端解决方案