如何从 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

iOS:到 NSArray 的 JSON 字符串未按预期工作

从 IOS 中的 2 个数组创建 JSON

iOS NSArray转化为Json

iOS:JSON 解析为 NSArray?

如何从 iOS 的另一个 nsarray 中不存在的核心数据中删除对象?