如何从 NSArray iOS PUT JSON 格式数据
Posted
技术标签:
【中文标题】如何从 NSArray iOS PUT JSON 格式数据【英文标题】:How to PUT JSON format data from NSArray iOS 【发布时间】:2016-12-06 16:52:02 【问题描述】:我需要像这样形成 PUT 请求:
在 Java (android) 上创建的第一个示例:
public JSONObject putGameData(String answer_id)
JSONObject jsonObject = new JSONObject();
if(myAnswersArray.contains(new String(answer_id)))
for(int i = 0; i < myAnswersArray.size(); i++)
if(answer_id.equals(myAnswersArray.get(i)))
myAnswersArray.remove(i);
else
myAnswersArray.add(answer_id);
JSONArray jsonArray = new JSONArray(myAnswersArray);
try
jsonObject.put("answer_id", jsonArray);
catch (JSONException e)
e.printStackTrace();
return jsonObject;
参数: “answer_id”:[ “a104fccc555a60ea8e437d8b7f11dd12”, “ad4277811a26ebea5d72d09a164531ee”, “5a1cc90dc9b51d6f8793759cab11728f”], “令牌”:“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJzdWIiOiIx P>
在 ios 应用程序上,我发送这样的参数,这是不正确的。我的参数带有 \n 和其他空格...
参数: “\” answer_id \ “:”: “\” 20052e3c88ef5c16d9ae0ac0d86ffbca \ “\ ”2600c200e39815352ec1c7d602d67d25 \“ ”:“ ”,“ 标记 ”:“ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJzdWIiOiIxMzUiLCJpc3MiOiJodHRwOlwv” P>
我做到了:
NSData *jsonData2 = [NSJSONSerialization dataWithJSONObject:multipleAnswersArray options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSASCIIStringEncoding];
[post setObject:multipleAnswersArray forKey:@"answer_id"];
然后执行put data:
NSData *postData = [NSJSONSerialization dataWithJSONObject:post options:0 error:&error];
如何像第一个例子一样制作正确的格式?
【问题讨论】:
不要使用NSJSONWritingPrettyPrinted
那就是添加\n
另外,正如所写,您的“请求参数”不是 JSON,“PARAMETERS:”后面是什么,但不包括“PARAMETERS:”。
@Larme 我已经排除了 NSJSONWritingPrettyPrinted 但情况相同。 :( 第一个变体是由 android 创建的,我将在问题的标题中添加代码以便更好地理解。也许它会有所帮助,有人知道如何在 Objective C 上编写相同的代码。
你为什么用setObejct: multipleAnswersArray
而不是setObject: jsonString
?
这不是\n
。只是转义字符。
【参考方案1】:
感谢大家的帮助,但我找到了解决方案。我使用 AFNetworking 并将我的数组放入参数中,它工作得很好;)
【讨论】:
以上是关于如何从 NSArray iOS PUT JSON 格式数据的主要内容,如果未能解决你的问题,请参考以下文章
如何将带有对象数组的 json 字符串转换为带有 nsdictionaries 的 nsarray - IOS