質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

4253閲覧

Swift3にてJsonをパースしてログでデータを確認したら文字化け(?)してました

fromKennya

総合スコア16

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/02/05 08:00

編集2017/02/06 13:29

###ソースコード
import UIKit

class searchView: UIViewController {

@IBOutlet weak var searchTextField: UITextField! @IBOutlet weak var genreTextField: UITextField! @IBOutlet weak var freeWordTextField: UITextField! @IBAction func deteleTextField(_ sender: AnyObject) { searchTextField.text = "" genreTextField.text = "" freeWordTextField.text = "" } override func viewDidLoad() { searchTextField.placeholder = "エリアを入力してください" genreTextField.placeholder = "ジャンルを入力してください" freeWordTextField.placeholder = "お好みで" let url = NSURL(string: "https://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key=固有のApiKey&large_area=Z011&format=json") let req = NSURLRequest(url: url as! URL) let reqtask = URLSession.shared.dataTask(with: req as URLRequest) { (data, response, error) in if error != nil { print(error) } else { if let content = data { do { let jsonData = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject print("result\(jsonData)") } catch { } } } } reqtask.resume() }

}

###ログ内容
result{
results = {
"api_version" = "1.26";
"results_available" = 28341;
"results_returned" = 10;
"results_start" = 1;
shop = (
{
access = "JR\U6e0b\U8c37\U99c5\U30cf\U30c1\U516c\U53e3\U3092\U51fa\U3066\U9053\U7384\U5742\U3092\U4e0a\U3063\U3066\U3044\U304f\U3068\U5de6\U624b\U306b\U30ed\U30c3\U30c6\U30ea\U30a2\U3068\U30d5\U30a1\U30df\U30ea\U30fc\U30de\U30fc\U30c8\U304c\U3042\U308b\U306e\U3067\U305d\U3053\U306e\U9593\U306b\U3042\U308b\U30d3\U30eb2\U968e\Uff01";
address = "\U6771\U4eac\U90fd\U6e0b\U8c37\U533a\U9053\U7384\U5742\Uff12-6-14\U3000HY\U30d3\U30eb\Uff12F";
band = "\U4e0d\U53ef";
"barrier_free" = "\U306a\U3057 \Uff1a\U5f53\U5e97\U306b\U306f\U3054\U7528\U610f\U5fa1\U5ea7\U3044\U307e\U305b\U3093\U304c\U3001\U3054\U4e0d\U4fbf\U306a\U70b9\U304c\U5fa1\U5ea7\U3044\U307e\U3057\U305f\U3089\U3001\U304a\U6c17\U8efd\U306b\U30b9\U30bf\U30c3\U30d5\U307e\U3067\U304a\U58f0\U639b\U3051\U304f\U3060\U3055\U3044\U3002";
budget = {
average = "3500\Uff5e5000\U5186";
code = B003;
name = "3001\Uff5e4000\U5186";
};
"budget_memo" = "\U304a\U901a\U3057500\U5186";
capacity = 40;
card = "\U5229\U7528\U53ef";
catch = "\U5927\U5207\U306a\U4eba\U3068\U7279\U5225\U306a\U6642\U9593\U3092\U2026 \U5168\U5e2d\U3086\U3063\U305f\U308a\U6398\U308a\U3054\U305f\U3064\U5e2d";
charter = "\U8cb8\U5207\U53ef \Uff1a20\U540d\Uff5e\U8cb8\U5207\U53ef\U80fd/\U6b53\U8fce\U4f1a\U306b\U3082\U30aa\U30b9\U30b9\U30e1";
child = "\U304a\U5b50\U69d8\U9023\U308cOK \Uff1a\U3054\U5bb6\U65cf\U3067\U306e\U3054\U5229\U7528\U3082\U975e\U5e38\U306b\U3054\U597d\U8a55\U3067\U3059!!\U304a\U5b50\U69d8\U306b\U3082\U5b89\U5fc3\U306a\U3001\U826f\U8cea\U306a\U98df\U6750\U3067\U594f\U3067\U308b\U548c\U306e\U6599\U7406\U3092\U304a\U697d\U3057\U307f\U4e0b\U3055\U3044";
close = "\U4e0d\U5b9a\U4f11";
"coupon_urls" = {
mobile = "http://hpr.jp/S/S511.jsp?SP=J001049740&uid=NULLGWDOCOMO&vos=hpp336";
pc = "https://www.hotpepper.jp/strJ001049740/map/?vos=nhppalsa000016";
qr = "http://webservice.recruit.co.jp/common/qr?url=http%3A%2F%2Fhpr.jp%2FS%2FS511.jsp%3FSP%3DJ001049740%26uid%3DNULLGWDOCOMO%26vos%3Dhpp337";
sp = "https://www.hotpepper.jp/strJ001049740/scoupon/?vos=nhppalsa000016";
};
course = "\U3042\U308a";
english = "\U306a\U3057";
equipment = "\U306a\U3057";
food = {
code = R001;
name = "\U548c\U98df\U5168\U822c";
};
"free_drink" = "\U3042\U308a \Uff1a\U5168\U30b3\U30fc\U30b9\U98f2\U307f\U653e\U984c\U4ed8!!\U6b53\U8fce\U4f1a\U3084\U9001\U5225\U4f1a\U306b\U304a\U3059\U3059\U3081\U266a";
"free_food" = "\U306a\U3057 \Uff1a\U98df\U3079\U653e\U984c\U306f\U3054\U3056\U3044\U307e\U305b\U3093\U304c\U3001\U30dc\U30ea\U30e5\U30fc\U30e0\U6e80\U70b9\U306a\U5404\U7a2e\U6599\U7406\U3092\U8c4a\U5bcc\U306b\U53d6\U308a\U63c3\U3048\U3066\U304a\U308a\U307e\U3059\U3002";
genre = {
catch = "\U3010\U5168\U5e2d\U6398\U308a\U3054\U305f\U3064\U3011\U81ea\U6162\U306e\U9b5a\U6599\U7406\U3068\U5275\U4f5c\U548c\U98df";
code = G001;
name = "\U5c45\U9152\U5c4b";
};

どのようにすれば日本語に直せますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2017/02/06 00:07

このログを出力しているコードを書いて下さい。
fromKennya

2017/02/06 13:30

コードを書きました!
fuzzball

2017/02/06 23:49

文字コードで表示されているだけで、実際の動作には問題ないと思いますが、それでも取得したJSON全てを(見た目的に)日本語で表示させたいですか?
fromKennya

2017/02/18 07:03

返信が遅くなってしまい申し訳ございません。無事解決致しました。
guest

回答2

0

確認したいだけならパース前の生データでいいですか?

swift

1if let content = data { 2 print(String(data: content, encoding: .utf8)!) 3 do { 4 :

動作未確認。

見にくかったら整形サイトなどを使って下さい。
JSON Pretty Linter Ver2

投稿2017/02/07 00:20

編集2017/02/07 00:21
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fromKennya

2017/02/18 07:03

返信が遅くなってしまい申し訳ございません。ご回答ありがとうございました。記載していただいた方法とは別のやり方で無事できました!
guest

0

ベストアンサー

JSONSerializationを使ったと仮定します。
SwiftyJSON
を使うと日本語が表示されるようです。
他にも色々やり方はあると思います。

swift

1do { 2 let a = try JSONSerialization.data(withJSONObject: ["alpha":["beta":"あいう", "gamma":"かきく"]], options: []) 3 let b = try JSONSerialization.jsonObject(with: a, options: []) 4 print("b is") 5 print("\(b)") 6 let c = JSON(data: a) 7 print("c is") 8 print("\(c)") 9} catch { 10}
b is { alpha = { beta = "\U3042\U3044\U3046"; gamma = "\U304b\U304d\U304f"; }; } c is { "alpha" : { "gamma" : "かきく", "beta" : "あいう" } }

投稿2017/02/06 11:21

pebble8888

総合スコア390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fromKennya

2017/02/18 07:04

返信が遅くなってしまい申し訳ございません。記載して頂いた方法とは違いますが、無事できました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問