经典的asp json ASP-Xtreme遍历json对象

时间:2019-04-26 17:17:33

标签: json foreach asp-classic

我不知道如何在经典asp中遍历此json:

{"recs": 
    [
        {"0":
            {
                "idOrder":"1",
                "idProduct":10,
                "description":
                "prod 10",
                "orgweight":5,
                "newweight":5,
                "rootsku":"sku1",
                "size":"12-18 Months"
            },
        "1":
            {
                "idOrder":"2",
                "idProduct":20,
                "description":"prod 20",
                "orgweight":5,
                "newweight":5,
                "rootsku":"sku2",
                "size":"12-18 Months"
            }
        }
    ]
}

sub updateWeights()
    dim jsonOBJ : set jsonOBJ= JSON.parse(join(array(myJsonString)))
    For Each rec in jsonOBJ("recs")
            'I want to compare orgweight vs newweight and update the db accordingly
    Next
end sub

我想念什么?这不是在经典ASP中遍历JSON对象的正确方法吗?

1 个答案:

答案 0 :(得分:1)

我在Xtreme中弄清楚了如何编写想要的json。我结束了:

    dim jsonOBJ : set jsonOBJ= JSON.parse(join(array(Request.Form("data"))))
{
    "prodArray": [{
        "idOrder": "266269",
        "idProduct": 281953,
        "description": "description 1",
        "orgweight": 2,
        "newweight": 3,
        "rootsku": "sku1",
        "size": "2T"
    }, {
        "idOrder": "266269",
        "idProduct": 274437,
        "description": "description 2 ",
        "orgweight": 2,
        "newweight": 2,
        "rootsku": "sku2",
        "size": "3T"
    }, {
        "idOrder": "266269",
        "idProduct": 268546,
        "description": "description3 ",
        "orgweight": 1,
        "newweight": 2,
        "rootsku": "sku3",
        "size": "3T"
    }]
}

以及遍历数组的代码:

    dim key: For Each key in jsonOBJ.prodArray.keys()
        set rec=jsonOBJ.prodArray.get(i)
        if rec.orgweight <> rec.newweight then
            query = "update products set weight=" & rec.newweight & " where  rootsku = '" & rec.rootsku & "' and size = '" & rec.size & "'"
            connTemp.execute(query)
            query="update Product_Weights_master set [" & rec.size & "] = " & rec.newweight & " where sku = '" & rec.rootsku & "'"
            connTemp.execute(query)
        end if
        i=i+1
    next