La solicitud que está enviando es ..... no JSON. Intente usar esto como un validador: JSONLint. Tira la cadena JSON hacia allí y te dirá si es válida o no. En el caso anterior: [email protected]&firstname=joe&lastname=smith
. Definitivamente no lo es.
Puede escribir JSON a mano, por ejemplo, me gustaría volver a escribir la consulta de la siguiente manera:
{"Email":"[email protected]", "firstname":"joe", "lastname":"smith"}
Espero que ayude. Sí, hay bibliotecas que pueden ayudarte a hacer esto (ASPJSON es una de ellas) pero para ser honesto, prefiero escribirlas yo mismo (ASP es muy difícil de manejar) o escribir mis propias funciones porque sé que puedo confiar en ellas. Aquí hay un fragmento de código de ejemplo que escribí en ASP que puede hacer una cadena JSON desde un objeto Dictionary. También puede tener matrices dentro de los elementos del diccionario. Desafortunadamente no es recursivo, por lo que no puede hacer arreglos de matrices o diccionarios de diccionarios ... pero funciona bien silencioso para entradas simples. Llamado json_encode después de la función de PHP.
Function json_encode(ByVal dic)
ret = "{"
If TypeName(dic) = "Dictionary" Then
For each k in dic
Select Case VarType(dic.Item(k))
Case vbString
ret = ret & """" & k & """:""" & dic.Item(k) & ""","
Case Else
If VarType(dic.Item(k)) > vbArray Then
ret = ret & """" & k & """:["
For x = 0 to Ubound(dic.Item(k), 1)
ret = ret & """" & dic.Item(k)(x) & ""","
Next
ret = Left(ret, Len(ret) - 1) 'Trim trailing comma
ret = ret & "],"
Else
ret = ret & """" & k & """:""" & dic.Item(k) & ""","
End If
End Select
Next
ret = Left(ret, Len(ret) - 1) 'Trim trailing comma
End If
ret = ret & "}"
json_encode = ret
End Function
Bugget, he descargado que antes, pero no veo cómo se puede utilizar para dar formato a una solicitud JSON. Voy a echar otro vistazo. – user1048348
@ user1048348 Eso es exactamente lo que se ve en los ejemplos en las páginas Wiki. Sin embargo, su respuesta podría haber sido más útil si hubiera incluido una pequeña muestra de código para el OP, en lugar de solo un enlace. – Lankymart