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

¿Cómo puedo enviar VitalGroupID y temperatura como entero en lugar de cadena ... Esta es la solicitud que get formó después de presionar el botón de enviar.Enviando respuesta Json como cadena e enteros ...

+0

¿No se envía JSON siempre como cadena? Creo que debes usar el tipo manualmente –

+2

@das: JSON es una notación textual, al igual que el código fuente de JavaScript es una notación textual. Está hablando de '" VitalGroupID ":" 1219 "' (que define una propiedad con * string * value '" 1219 "') en oposición a '" VitalGroupID ": 1219' (que define la propiedad con el valor * numérico * '1219'). –

+0

Gracias por la información;) –

Respuesta

2

Estrictamente hablando, json está sin tipo, por lo que no se puede enviar como un entero, tiene que ser una cadena. Los objetos javascript son un poco menos estrictos, por lo tanto, lo que usted tiene se evaluará en un objeto javascript, pero ningún analizador json estricto podrá entenderlo.

Lo mejor que puedes hacer es convertir los campos que sabes que son números en el lado del cliente usando parseInt.

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

+12

JSON está sin tipo? JSON difiere entre cadena y número, o? (http://json.org/) – Biber

+1

Parece que el estándar ECMA-404 hace una diferencia entre cadena y número en JSON: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA- 404.pdf –

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

Deberá mostrar el código que está creando la solicitud cuando haga clic en el botón. Básicamente, si el objeto que está serializando contiene números en lugar de cadenas, el JSON resultante tendrá números en lugar de cadenas. Entonces, el problema es que el objeto que está serializando tiene cadenas en su lugar.

Pero, por ejemplo, si usted está recibiendo estos valores de los campos de entrada HTML o similares, por ejemplo .:

UpdateRequest.SAASAS.VitalGroupID = someInputElement.value; 

... value es siempre una cadena. Tendrá que analizarlo:

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

Tenga en cuenta que lo mejor es utilizar parseInt y darle la raíz (la base numérica, por lo general 10), otra cosa que tenga problemas con los números escritos como "08" y similar.

0

Si desea manejarlo en el lado del cliente (como ha mencionado JSON, JAvascript). Puede hacer lo siguiente después de analizar el objeto JSON. parseInt(UpdateRequest.SAASAS.VitalGroupID,10) o UpdateRequest.SAASAS.VitalGroupID*1 Adopte lo mismo para la variable "temperatura" también.

1

JSON admite números como valores. Entonces:

var r = { 
    "UpdateRequest": { 
     "SAASAS": { 
      "SPO2": "99.00000", 
      "VitalGroupID": "1219", 
      "Temperature": "36.6666666666667",    
     }, 
     "Modified": 1, 
     "ID": 25465 
    } 
} 
r.UpdateRequest.SAASAS.VitalGroupID = +r.UpdateRequest.SAASAS.VitalGroupID 
Cuestiones relacionadas