2011-07-28 17 views
8
{ 
    "UpdateRequest": { 
     "SAASAS": { 
      "SPO2": "99.00000", 
      "VitalGroupID": "1219", 
      "Temperature": "36.6666666666667",    
     }, 
     "Modified": 1, 
     "ID": 25465 
    } 
} 

Stringの代わりにVitalGroupIDとTemperatureを整数として送信するにはどうすればよいですか。これは、送信ボタンを押した後に取得されるリクエストです。Jsonレスポンスを文字列と整数として送信します...

+0

JSONは常にStringとして送信されますか?私は手動で型をキャストしなければならないと思う。 –

+2

@das:JSONはJavaScriptのソースコードと同じようにテキスト表記です。彼は '' VitalGroupID ':1219 ''(* string *値 '" 1219 "'を持つプロパティを定義しています)を "VitalGroupID":1219と呼んでいます(これは*数値* 1219)。 –

+0

ありがとうございます;) –

答えて

2

厳密に言えば、jsonは型が指定されていないので、整数として送信することはできません。文字列でなければなりません。 javascriptオブジェクトは少し厳密ではないので、javascriptオブジェクトに評価するものはありますが、厳密なjsonパーサはそれを理解することができません。

あなたができることは、parseIntを使用してクライアント側の数値であることがわかっているフィールドを変換することです。

sonObj["UpdateRequest"]["SAASAS"]["VitalGroupID"] = parseInt(jsonObj["UpdateRequest"]["SAASAS"]["VitalGroupID"], 10);

+12

JSONは型指定されていませんか? JSONは文字列と数値の間で異なりますか? (http://json.org/) – Biber

+1

ECMA-404標準のように見えますが、JSONの文字列と数値の間に違いがあります:http://www.ecma-international.org/publications/files/ECMA-ST/ECMA- 404.pdf –

0
new Number(jsonObject.UpdateRequest.SAASAS.VitalGroupID); 
10

ボタンをクリックすると、リクエストを作成するコードを表示する必要があります。基本的には、シリアル化しているオブジェクトに文字列ではなく数字が含まれている場合、結果のJSONには文字列ではなく数値が入ります。したがって、問題は、直列化しているオブジェクトに文字列があることです。

しかし、たとえば、あなたがHTMLの入力フィールドまたは類似から、これらの値を取得している場合、例えば:

UpdateRequest.SAASAS.VitalGroupID = someInputElement.value; 

... valueは常に文字列です。あなたはそれを解析する必要があります。そうでなければparseIntを使用し、それを基数(基数、通常は10)を得最善だと

UpdateRequest.SAASAS.VitalGroupID = parseInt(someInputElement.value, 10); 

注意、あなたが「08」と書かれた数字の問題に遭遇すると、類似。

0

クライアント側(JSON、JAVascriptについて言及したように)で処理したい場合は、あなたはJSONオブジェクトを解析した後、次のことを行うことができます。 parseInt(UpdateRequest.SAASAS.VitalGroupID,10)またはUpdateRequest.SAASAS.VitalGroupID*1 "temparature"変数にも同じものを使用してください。

1

JSONは数値を値としてサポートしています。したがって:

var r = { 
    "UpdateRequest": { 
     "SAASAS": { 
      "SPO2": "99.00000", 
      "VitalGroupID": "1219", 
      "Temperature": "36.6666666666667",    
     }, 
     "Modified": 1, 
     "ID": 25465 
    } 
} 
r.UpdateRequest.SAASAS.VitalGroupID = +r.UpdateRequest.SAASAS.VitalGroupID 
関連する問題