私の貧弱なスキルを迅速に把握するには、これを思いつくことができます。あなたが私のように素早く新しいことがあれば、それを使用して自由に感じてください。 downvotesありがとう。スウィフト4:JSONを解析する適切な方法
var jsonString = "https://translate.yandex.net/api/v1.5/tr.json/translate?key=trnsl.1.1.20170517T154730Z.927d87b76de60242.7a92e4612778a4838d40ab192df5297d2a1af4ed&text=Hi&lang=ar"
// [error 2:11] no viable alternative at input 'jsonString ='
var components = NSURLComponents(string: jsonString)
var url = components?.url
var data = NSData(contentsOf: url!)
var error = NSError.self
var dictionary = try JSONSerialization.jsonObject(with: data! as Data, options: .allowFragments) as! NSDictionary
let dict1 = dictionary["text"] as! NSArray
let ps = Array(dict1.map{ $0 })
print(ps[0])
が異なる言語に単語を翻訳するアイデアを思い付いた実践と練習..質問は私が迅速に新しいです、で、私のFAV言語は過去1.5 Obj-c
ました私はいつもこのコードを使用していましたが、それは完璧に機能しましたが、今日はクリーンな速さについてのメディア記事を見ました。試してみるのが大好きで、基本的に私は目を覚ましました。お問い合わせ
私のObj-c
コードは
NSString *jsonString = [NSString stringWithFormat:@"https://translate.yandex.net/api/v1.5/tr.json/translate?key=trnsl.1.1.20170517T154730Z.927d87b76de60242.7a92e4612778a4838d40ab192df5297d2a1af4ed&text=%@&lang=ar",self.textField2.text];
jsonString = [jsonString stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSURLComponents *components = [NSURLComponents componentsWithString:jsonString];
NSURL *url = components.URL;
NSData *data=[NSData dataWithContentsOfURL:url];
NSError *error=nil;
NSDictionary* dictionary = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
if (error == nil) {
NSArray *result = dictionary[@"text"];
if (result.count > 0) {
NSString *translattedSTR = result[0];
self.txtview.text = translattedSTR;
}
}
iは残念ながら
var jsonString = "https://translate.yandex.net/api/v1.5/tr.json/translate?key=trnsl.1.1.20170517T154730Z.927d87b76de60242.7a92e4612778a4838d40ab192df5297d2a1af4ed&text=\("Hello")&lang=ar"
jsonString = jsonString.replacingOccurrences(of: " ", with: "%20")
var components = URLComponents(string: jsonString)
var url: URL? = components?.url
var data = Data (contentsOf: url!)
var error: Error? = nil
var dictionary = (try? JSONSerialization.jsonObject(with: data ?? Data(), options: kNilOptions)) as? [AnyHashable: Any]
if error == nil {
var result = dictionary["text"] as? [Any]
if result?.count > 0 {
var translattedSTR = result[0] as? String
print(translattedSTR)
// txtview.text = translattedSTR
}
}
を試みたが、迅速なコードです。私は投げることができます
コールを取得していますが、
PS
Data
に 'してみてください' でマークされていない:thisであるように、JSONは何かを探します!
「動作しません」と定義します。どのようにして正確には機能しませんか? – rmaddy
こんにちは@rmaddy、それはnilを返し、クラッシュする –
Swift 4を使用しているなら、新しい 'Codable'と' JSONDecoder' APIを使うことを強くお勧めします。 – Hamish