2017-12-05 44 views
2

実際、VBScriptの動的キーを使用したJSONから価値を得たいと考えています。私は何かが既に尋ねられたが、VBScriptには何も見つからない場合、同様の質問を見つけようとします。そこで、以下VBScriptの動的キーを使用したJSONオブジェクトの値の解析

は、サンプルJSONです:

{ 
    "assessmenttype": [{ 
     "id": "129666", 
     "formattedvalue": "wT", 
     "value": "WT" 
    }], 
    "jobid": "2017-2752", 
    "jobtitle": "XYZ", 
    "links": [{ 
     "rel": "self", 
     "title": "The current profile being viewed.", 
     "url": "https://dummyUrl.com/customers" 
    }], 
    "field33005": { 
     "id": "C121", 
     "formattedvalue": "XYZ", 
     "value": "XYZ" 
    } 
} 

ので(クライアント固有の)JSON上記では、1つのクライアント・ノード名はfield33005であるが、他のクライアントのために、このフィールド名はかもしれないためとして、 field38045など..それでは、このフィールド33005のカスタムフィールドの値のサブフィールドの値を取得することです。

私はJSONでVBScriptで解析するのは専門ではないので、助けてください。

注:私たちはASPでVBSriptからJS関数を呼び出すことができますように私は自分の質問に答えるために

+0

VBScriptにはJSONパーサーが付属していません。 [VbsJson](http://demon.tw/my-work/vbs-json.html)クラスがありますが、JScriptやPowerShellなどのJSONパーサーに実際に付属する言語を使用する方がよいでしょう。 –

+0

json構文解析では、json2-min.jsライブラリを使用しています。 –

+0

@AnsgarWiechersさんの助けがありますか? –

答えて

2

json2-min.jsライブラリを使用していますJSONの解析のために私はJavaScriptで一つの関数を作ります。私たちは実際のJSONとカスタムフィールドの名前を渡す必要があり、上記の方法で

<script runat="server" language="javascript"> function getJSONObject(targetJSONObject, propName) { for (var prop in targetJSONObject) { if (prop = propName) { return targetJSONObject[prop].value; } } return ""; } </script> 

それはそのカスタムフィールドの「値」サブノードを返します。

+1

おそらく私はあなたの質問を誤解しましたが、これは答えません。私は問題はあなたがプロパティ名が何であるかを知らなかったが、値を無関係にしなければならないと思った。この関数では、プロパティ名を知っている必要があります。また、 'if'文での等価性のテストは' == 'でなければなりません。 – Craig

+0

実際には、顧客ごとにプロパティ名が異なる場合がありますが、特定の顧客のプロパティの名前を事前に知っておく必要があります。このプロパティ名は、DBまたは顧客固有のファイルのいずれかに保持できます。だから私はその顧客固有のプロパティの価値を得ることができる汎用コードを書く必要がありました。 –

関連する問題