使用AFN傳遞json字串引數

2021-07-14 17:12:40 字數 886 閱讀 2650

一. 問題描述:在使用afn的post傳遞引數的時候,需要傳遞2個引數,這兩個引數都是字典型別的,由於afn的post方法的params引數是乙個字典,所以我這麼寫的:

// 建立json資料

nsdictionary *p1info = @;

nsdictionary *p2info = @;

nsmutabledictionary *params = [nsmutabledictionary dictionary];

params[@"parm1"] = p1info;

params[@"parm2"] = p2info;

然後傳參發現傳送失敗。報錯400,也就是語法錯誤。

二. 解決思路:由於是語法錯誤,所以問了後台,發現後台需要的不是json資料,而是字串格式的資料,我直接把p1info作為引數傳遞,就是直接把json發給了後台,後台是不接受的。

三. 解決方法:所以應該把json格式的引數先轉換成字串再放到parms中,轉換的方法是先把json轉換成data,然後再利用string的initwithdata方法生成乙個字串引數。如下:

nsdictionary *p1info = @;

nsstring *p1str = [[nsstring alloc] initwithdata:[nsjsonserialization datawithjsonobject:p1info options:0 error:nil] encoding:nsutf8stringencoding];

nsmutabledictionary *params = [nsmutabledictionary dictionary];

params[@"p1"] = p1str;

解決!

JSON字串的使用

一 json和js字串的區別 首先json物件的資料格式滿足三個條件 1 花括號 2 資料以鍵 值的形式出現 鍵大多是字串如 id 值可以是很多例如字串,數值,甚至json物件 例如 id 111,女 json物件 js字串和和json字串區別就是js字串使用單引號或者雙引號引起來 例如var js...

c 使用Json字串

string data jsonconvert.serializeobject t t為要傳送的資料物件 data為序列化之後要傳送出去的json字串。例子 webscoketmsgmodel model new webscoketmsgmodel string data jsonconvert.s...

使用Gson處理json字串

test public void test01 gettype list list gson.fromjson json,type for listlists list 這裡我是把乙個二維陣列處理成立成乙個list 物件 下面是我使用gson將json字串轉換為物件的兩種方式 第一種 public ...