2016-08-31 13 views
0

エラードメイン= NSCocoaErrorDomainコード= 3840「エスケープさ制御文字文字981周り 」私は、要求の応答にエラー上取得していたUserInfo = {文字981周りNSDebugDescription =エスケープさ制御 文字}エスケープさ制御文字解析中にJSON

。以下は

は、コードの行です:

Alamofire.request(.POST, urlStr, parameters: parameter, encoding: .JSON, headers: nil).validate().responseJSON { 
      response in switch response.result { 

      case .Success(let JSON): 
       completionHandler(JSON as! NSDictionary) 

      case.Failure(let Error): 

       print(Error) 
      } 
     } 

それはポストマンでJSONレスポンスを提供します。

私はポストマンに取得していますされレスポンス:あなたが受け取った

{ 
    "orderdetails": { 
    "status_code": "200", 
    "status_message": "Order details", 
    "billingandshipping": { 
     "billing": { 
     "firstname": "first", 
     "lastname": "last", 
     "email": "[email protected]", 
     "address": "dasdesfrew", 
     "city": "Rajkot", 
     "area": "University Road", 
     "pincode": "360003", 
     "phone": "1234567890", 
     "mobileno": "1234567891" 
     }, 
     "shipping": { 
     "firstname": "first", 
     "lastname": "last", 
     "email": "[email protected]", 
     "address": "dasdesfrew", 
     "city": "dasdesfrew", 
     "area": "dcdc", 
     "pincode": "360003", 
     "phone": "1234567890", 
     "mobileno": "1234567891" 
     } 
    }, 
    "orders": [ 
     { 
     "order_id": "77", 
     "order_date": "09-08-2016 13:05:29", 
     "delivery_date": "10-08-2016", 
     "order_items": [ 
      { 
      "Sr": "1", 
      "product_name": "Lemon", 
      "gujtitle": "લીંબુ ", 
      "product_code": "000057", 
      "product_price": "108.00", 
      "product_qty": "2", 
      "unit": "1 kg.", 
      "product_total": "216" 
      } 
     ], 
     "final_total": "216.00", 
     "shipping_cost": "0.00", 
     "order_total": "216.00", 
     "discount_type": "null", 
     "discount_amount": "null", 
     "coupon_name": "null", 
     "comment": "gdhdj\nfghd.g\nghj\n\n\n\n\n\n\n\n\n\n.." 
     } 
    ] 
    } 
} 
+4

です。問題はあなたのコードではなく、あなたのJSONが無効であることです。 – Moritz

+0

それは郵便配達員で応答を与える –

+2

私は応答がないと言っていない、私はJSONが有効ではないと言った。 – Moritz

答えて

4

あなたは「\ n」=>「「\ n」は

に関連する問題があるので、私は

以下のようにあなたのために働くであろう「\」あなたが追加することができます示唆語っ1として\\ n "

これは特殊文字コールのバックスペース文字です。

あなたの答えは

+1

サーバーからのJSON応答、特に制御できない応答からこの問題を修正するには、どのような方法をお勧めしますか? APIを介してなど。私は同様の問題を抱えていますが、これを修正したいくつかの作業では問題は解決しましたが、まだコード化されていれば、これらすべてを応答で置き換えることができるとは確信していません。 – KSigWyatt

0

のNSLogたNSData、あなたはエスケープ制御文字とバイト981の周りのものを見つけるどのような顔をしているので、彼らは目に見えないということですNSStringでそれらを見ることはできませんが、NSDataでそれらを見ることができます。

データの長さが981バイトまたは非常に近い場合は、コードで不完全なJSONデータが処理される可能性があります。これはほとんどの場合失敗します。それは何かあなたはを修正する必要があります。いくつかの項目の間に制御文字がある場合(2つの配列要素の間など)、これはサーバーコードのバグかもしれません。

関連する問題