Objective c 使用NSURLSessionDataTask对iOS中JSON内的数组进行正确格式化

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

我正试图发布一个RESTfulWebAPI,但在httpBody上的格式有问题<代码>NSJSONSerialization正在创建以下内容:

{
  "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将其转换为正确的格式。您已经放置了一个字符串,而不是将字典中的数组作为“位置”值。不要这样做。向我们展示创建字典并添加“位置”的代码。