1

サードパーティから JSON を受け取り、条件付きで数量を解析する必要があります... 項目の使用のタイプに応じて、「ReplacementCount」または「ServiceCount」は「数量」になり、その他を削除または無視する必要があります. 「lineitemfieldname」の両方が > 0 になることはありません。常にどちらかになります。

私は最初の if ステートメントに取り組んでいますが、2 番目には決して... JSON オブジェクト/値の if ステートメントを正しく処理していないことは確かですが、解決方法がわかりません。

サンプルの JSON は次のとおりです。

{"recordtype":"salesorder","item":
 [{"InventoryManagementKey":"20001","InvoiceDay":"9/10/2015","ReplacementAmount":0.0000,"ReplacementCount":500,"ServiceAmount":0.0000,"ServiceCount":0}]}

JSON を処理するサーバー側スクリプトのフラグメントを次に示します。

    for(var lineitemfieldname in lineitemobject)
                            {
                                var lineitemfieldvalue = lineitemobject[lineitemfieldname];                             
                                if(lineitemfieldname == 'ServiceCount' && lineitemfieldvalue != 0)
                                {   
                                    if(lineitemfieldname == 'InventoryManagementKey')                           
                                    {
                                        lineitemfieldname = 'item';                                             
                                    }
                                    if(lineitemfieldname == 'ServiceCount')                                     
                                    {
                                        lineitemfieldname = 'quantity';                                         
                                    }
                                    delete 'ServiceAmount';
                                    delete 'ReplacementAmount';
                                    delete 'ReplacementCount';
                                    delete 'invoiceDay';

                                    record.setCurrentLineItemValue('item',lineitemfieldname,lineitemfieldvalue);
                                }
}
4

3 に答える 3

2

JSON Schema Draft-07の検証により、 JSONif...then...elseは条件付きデータ表現のキーワードをサポートするようになりました。

{
    "type": "integer",
    "minimum": 1,
    "maximum": 1000,
    "if": { "minimum": 100 },
    "then": { "multipleOf": 100 },
    "else": {
        "if": { "minimum": 10 },
        "then": { "multipleOf": 10 }
    }
}
于 2018-09-07T08:05:11.760 に答える