【发布时间】:2016-01-26 18:43:51
【问题描述】:
我遇到了我认为是错误的问题。我有一个从服务器返回的对象数组。但是,当从中提取值时,我会得到不一致的结果。这些项目中的每一项都在服务器响应的同一数组中:
当我尝试提取此值的quantity 值时,它会返回Int:
{
address = "4040 MARKET ST RM 226";
city = PHILADELPHIA;
ln = "AMOXICILLIN 500 MG CAPSULE";
ndc = 57237003105;
npi = 1619912375;
"pharmacy_name" = "GRACE PHARMACY INC";
phone = "(215)895-5594";
price = "8.00";
quantity = 500;
state = PA;
vendor = una;
zip = 19104;
}
但是,当我尝试从中提取 quantity 时,它会以 String 的形式返回。
{
address = "1826 Chestnut St # 30";
brand = G;
city = Philadelphia;
distance = "0.06";
latitude = "39.951747";
ln = "AMOXICILLIN 500 MG CAPSULE";
longitude = "-75.171154";
"ncpdp_id" = 3969485;
ndc = 65862001705;
"pharmacy_hours_of_operation" = "Open 24 Hours";
"pharmacy_name" = "CVS PHARMACY";
phone = "(215)972-0909";
price = "11.82";
quantity = 30;
state = PA;
vendor = scriptsave;
zip = "19103-4902";
}
到底为什么会发生这种情况?两个对象似乎是相同的,除了一个中的一些额外值。
===
像这样序列化 JSON:
let searchResultsJSON: NSDictionary = try NSJSONSerialization.JSONObjectWithData(jsonData, options: .MutableContainers) as! NSDictionary
像这样获取值:
quantity = formDictionary["quantity"] as? Int
quantityString = formDictionary["quantity"] as? String
====
这是 JSON:
results = (
{
address = "4040 MARKET ST RM 226";
city = PHILADELPHIA;
ln = "ESOMEPRAZOLE MAG DR 40 MG CAP";
ndc = 13668015510;
npi = 1619912375;
"pharmacy_name" = "GRACE PHARMACY INC";
phone = "(215)895-5594";
price = "74.00";
quantity = 1000;
state = PA;
vendor = una;
zip = 19104;
},
{
address = "1700 Market St";
brand = G;
city = Philadelphia;
distance = "0.22";
latitude = "39.952981";
ln = "ESOMEPRAZOLE MAG DR 40 MG CAP";
longitude = "-75.168431";
"ncpdp_id" = 3985059;
ndc = 00378235193;
"pharmacy_hours_of_operation" = "S(Clsd) M(8a-6p) T(8a-6p) W(8a-6p) T(8a-6p) F(8a-6p) S(9a-12p)";
"pharmacy_name" = "PICKWICK PHARMACY INC";
phone = "(215)563-4860";
price = "241.23";
quantity = 30;
state = PA;
vendor = scriptsave;
zip = "19103-3913";
}
);
所以在这里,第一个中的quantity 在第二个中返回为Int 和String。我开始认为这是服务器端问题...
===
在 Chrome 中查看 JSON 确实可以确认它是来自服务器的编码错误。谢谢@CouchDeveloper
【问题讨论】:
-
你用什么代码来获取数量值?
-
你用什么来解析 JSON?
-
@TahTatsumoto 我已经更新了我的问题。感谢您的快速回复。
-
@Jeremiah 我已经更新了我的问题。感谢您的快速回复。
-
如果您可以发布 JSON(== 一个字符串,以 JSON 编码),那就更好了。您的打印似乎是代表 JSON 的对象的控制台日志。