классический asp json ASP-Xtreme traverse json объект - PullRequest
1 голос
/ 26 апреля 2019

Я не могу понять, как пройти этот JSON в классическом ASP:

{"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

Чего мне не хватает? Разве это не правильный способ обхода объекта JSON в Classic ASP?

1 Ответ

1 голос
/ 27 апреля 2019

Я понял в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...