Objective c 使用NSURLSessionDataTask对iOS中JSON内的数组进行正确格式化
我正试图发布一个RESTfulWebAPI,但在httpBody上的格式有问题<代码>NSJSONSerialization正在创建以下内容:Objective c 使用NSURLSessionDataTask对iOS中JSON内的数组进行正确格式化,objective-c,json,nsarray,nsjsonserialization,Objective C,Json,Nsarray,Nsjsonserialization,我正试图发布一个RESTfulWebAPI,但在httpBody上的格式有问题NSJSONSerialization正在创建以下内容: { "UserId" : "ThisIsMe", "Locations" : "[\n \"1\"\n]", "TypeOfValue" : "3", "SomeTypeID" : 22, "Title" : "asdfadsf", "Description" : "Description" } 但我需要的是: { "UserId
{
"UserId" : "ThisIsMe",
"Locations" : "[\n \"1\"\n]",
"TypeOfValue" : "3",
"SomeTypeID" : 22,
"Title" : "asdfadsf",
"Description" : "Description"
}
但我需要的是:
{
"UserId" : "ThisIsMe",
"Locations" : ["1"],
"TypeOfValue" : "3",
"SomeTypeID" : 22,
"Title" : "asdfadsf",
"Description" : "Description"
}
为了“按原样”将其组合在一起,我必须在其上运行
NSArray
运行NSJSONSerialization
,然后将其附加到NSDictionary
中,然后调用NSJSONSerialization
。因此,双序列化显然存在问题,但如果我使用NSDictionary
传入数组,它将失败…请帮助。您应该有一个NSDictionary
,它的键都是字符串,值是NSString
,NSNumber
或NSArray
(包含NSString
)实例。然后,使用nsjsonserialization
将该字典表示形式转换为JSON数据表示形式,您将得到所需的内容。如果字典包含数组,它怎么会失败?返回的错误是什么/JSON?它不是有效的格式。期望得到的是数组,而不是“[”的字符串“1”、“4”]“是因为数组标记被包装为双引号内的字符串。它还创建了回车符,但这与为预打印设置的选项有更多关系。这是对当前代码错误的描述,而不是以前的解决方案,我认为这是正确的方法)正确,问题是如何将其序列化到第二个结构中。我手动这样做是为了演示,因为这是有效的。我在firefox中使用RestClient作为一种方法来确定什么是有效的,什么是无效的。问题仍然是如何让Objective-C将其转换为正确的格式。您已经放置了一个字符串,而不是将字典中的数组作为“位置”值。不要这样做。向我们展示创建字典并添加“位置”的代码。