这两个请求之间的区别
Difference between these two requests
请求一个(不工作)
{
"AddNewRequest":{
"Patient":{
"PrimaryPhoneNumber":" ",
"DateOfBirth":" ",
"CellPhoneNumber1":" ",
"ResidentialAddress":{
"AddressLine1":" ",
"State":" ",
"City":" ",
"PostalCode":" "
},
"PhoneNumber1":" ",
"SSN":" ",
"FullName":"John",
"Religion":" ",
"Gender":" ",
"Race":" ",
"Firstname":"Vinoth",
"EmailAddress1":" ",
"LastName":"Cooper"
},
"Header":{
"SourceSiteID":"300242",
"DestinationSiteID":"300242",
"PrimeSuiteUserID":"1"
},
"Credentials":{
"VendorCredential":{
"VendorLogin":"testGUID",
"VendorPassword":"testGUID"
},
"PrimeSuiteCredential":{
"PrimeSuiteUserPassword":"password",
"PrimeSuiteSiteId":"1",
"PrimeSuiteUserName":"Admin"
}
}
}
}
请求二(工作)
{
"PatientAddNewRequest":{
"Credentials":{
"PrimeSuiteCredential":{
"PrimeSuiteSiteId":"300242",
"PrimeSuiteUserName":"Admin",
"PrimeSuiteUserPassword":"password"
},
"VendorCredential":{
"VendorLogin":"testGUID",
"VendorPassword":"testGUID"
}
},
"Header":{
"DestinationSiteID":"300242",
"PrimeSuiteUserID":"1",
":SourceSiteID":"300242"
},
"Patient":{
"CellPhoneNumber1":"206-567-2222",
"DateOfBirth":"/Date(1306348200000)/",
"EmailAddress1":"JohnDoe@yahoo.com",
"Firstname":"TestMan1",
"FullName":"TestFullMan1",
"Gender":"2",
"LastName":"Testlastname1",
"PhoneNumber1":"205-567-1111",
"PrimaryPhoneNumber":"205-456-4545",
"Race":"2",
"Religion":"3",
"ResidentialAddress":{
"City":"Carrollton",
"PostalCode":"35209",
"State":"10"
},
"SSN":"911-91-9191"
}
}
}
我只是不明白为什么第一个请求不起作用,而第二个请求给出了响应。有人能认出我做错了什么吗。
秩序重要吗
更新
第一个抛出错误请求,第二个按预期响应。
在JSON中,顺序无关紧要,但名称重要。在请求一中有"AddNewRequest"
,而在请求二则有"PatientAddNewRequest"
。
同样在服务器端,序列化程序/反序列化程序可能需要特定的排序。
JSON-
对象是无序的零个或多个名称/值的集合对,其中名称是字符串value是字符串、数字、布尔值,null、对象或数组。
我们不知道您处理这些"请求"的代码,但要回答您的问题:
是的,JSON中元素的顺序可能很重要
除非您的代码以不受其顺序影响的方式处理它。
例如,如果您有两个对象:
{prop1: 'abc', prop2: 'xyz'}
{prop2: 'xyz', prop1: 'abc'}
然后在PHP中以以下方式处理它们,例如:
$data = json_decode($request_string);
foreach ($data as $key => $value) {
echo '['.$value.']';
}
您应该收到以下结果:
- 对于第一个请求:
[abc][xyz]
- 对于第二个请求:
[xyz][abc]
但如果你这样做:
$data = json_decode($request_string);
echo '['.$data['prop1'].']['.$data['prop1'].']';
在这两种情况下,您都会收到相同的结果,即:
[abc][xyz]
希望能澄清一些事情。
在#1请求中重命名属性名称
您是否在第一次请求中将AddNewRequest
重命名为PatientAddNewRequest
?有什么不同吗?
相关文章:
- 是否可以缓存可下载的文件,并在XHR和非XHR请求之间共享该缓存
- Node.js HTTP/NET——连接和请求之间的区别
- Node.js&两个请求之间的Express/Can上下文切换可以是同步代码
- 使秒表在请求之间处于活动状态
- 如何识别源自JS脚本的http请求与HTML
- Google Geocoder 在 url 和 javascript 请求之间有不同的结果
- JavaScript 和 node.js 中多个请求之间的局部变量
- 用户请求和AJAX/资源请求之间的差异
- Express会话变量don'不会在请求之间持久存在
- 使用jquery ajax的两个CORS请求之间的时间间隔
- 在单元测试中,当[method]语句在请求之间时如何改变$httpBackend
- Node/commonJS可以“private”;请求之间的变量泄漏
- Express - Session不会在后续SSE请求之间被保存
- Node.js或其他JS服务器技术是否支持请求之间的本机共享内存而不需要序列化?
- 如何查找两个连续请求之间经过的时间
- jQuery AJAX请求之间的时间延迟
- 我应该如何最好地跟踪页面请求之间的计时器
- JS-设置发送AJAX请求之间的延迟
- 这两个请求之间的区别
- YouTube的请求和我的请求之间的区别