回答編集履歴

1

やっつけ。

2016/03/25 00:40

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -1 +1,51 @@
1
1
  JSONPではなくJSONで取得して下さい。
2
+
3
+
4
+
5
+ #JSONP to JSON(やっつけ)
6
+
7
+
8
+
9
+ ```swift
10
+
11
+ //String化
12
+
13
+ let strJSONP = NSString(data: data!, encoding: NSUTF8StringEncoding)
14
+
15
+ //print(strJSONP!)
16
+
17
+ //()内だけ取り出す
18
+
19
+ let pattern = "^.*\\((.*)\\);$"
20
+
21
+ let replace = "$1"
22
+
23
+ let strJSON = strJSONP?.stringByReplacingOccurrencesOfString(pattern, withString: replace, options: .RegularExpressionSearch, range: NSMakeRange(0, (strJSONP?.length)!))
24
+
25
+ //NSData化
26
+
27
+ let dataJSON = strJSON!.dataUsingEncoding(NSUTF8StringEncoding)
28
+
29
+ do {
30
+
31
+ let dic = try NSJSONSerialization.JSONObjectWithData(dataJSON!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
32
+
33
+ print(dic)
34
+
35
+ print("成功")
36
+
37
+ } catch {
38
+
39
+ print("失敗")
40
+
41
+ }
42
+
43
+ ```
44
+
45
+
46
+
47
+ 私が試したJSONPはこれでいけました。
48
+
49
+ 受け取っているJSONPを見て調整して下さい。
50
+
51
+