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

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

ただいまの
回答率

90.35%

  • Swift

    7672questions

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

  • iOS

    4181questions

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

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 838

fromKennya

score 10

ソースコード

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";
};

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • fuzzball

    2017/02/06 09:07

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

    キャンセル

  • fromKennya

    2017/02/06 22:30

    コードを書きました!

    キャンセル

  • fuzzball

    2017/02/07 08:49

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

    キャンセル

  • fromKennya

    2017/02/18 16:03

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

    キャンセル

回答 2

checkベストアンサー

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/18 16:04

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

    キャンセル

0

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

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

動作未確認。

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/18 16:03

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

    キャンセル

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

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Swift

    7672questions

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

  • iOS

    4181questions

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