最近私はJSONを扱っていて、毎日新しい問題に遭遇しています。 StackOverflowの仲間は私を大いに助けてくれて、ありがとう。JSONを見つけたときにJSONを処理する方法
アプリが正常に動作していました。ゼロJSONが返されます。ここで** ** post_imgの内部には、GUIDありませんあなたが見ることができるJSONリターンの第二のチャンクでここリターン
{
"main_content" : [
{
"author" : "maruf khandakar",
"post_id" : 110,
"post_date" : "October 3, 2016",
"title" : "hjhjhjhjkljkhasfreiwutb cltjutjuregjre nb",
"show_comment_number" : "0",
"show_likes" : "0",
"post_img" : [
{
"guid" : "http:\/\/xxx\/wp-content\/uploads\/2016\/10\/IMG_1475492476.jpg"
}
],
"author_img" : "http:\/\/xxx\/wp-content\/uploads\/2016\/10\/Screenshot_1-2.png",
"post_time" : "11:01 am",
"blog_text" : "sfdhjusolidasfjgfkdsjfdklshfj"
},
{
"author" : "maruf khandakar",
"post_id" : 149,
"post_date" : "November 17, 2016",
"title" : "Test",
"show_comment_number" : "0",
"show_likes" : "0",
"post_img" : [
],
"author_img" : "http:\/\/xxx\/wp-content\/uploads\/2016\/10\/Screenshot_1-2.png",
"post_time" : "4:03 am",
"blog_text" : "Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip"
}
]
}
私JSONです。したがって、私の配列がこれを繰り返してを反復すると、クラッシュします。ここで私は
import Foundation
import SwiftyJSON
class HomeFeedJSON {
var title: String?
var author_img: URL?
var author: String?
var blog_text: String?
var post_img: URL?
var likesNumber: Int?
var commentNumber:Int?
init(items: JSON){
self.author = items["author"].stringValue
self.author_img = items["author_img"].URL
self.title = items["title"].stringValue
self.blog_text = items["blog_text"].stringValue
let post_imgAA = items["post_img"].array
for itemsIMG in post_imgAA! {
self.post_img = itemsIMG["guid"].URL
}
self.likesNumber = items["show_likes"].intValue
self.commentNumber = items["show_comment_number"].intValue
}
}
後、私は私が私のフィルタリングが十分ではなかったと確信していますので、この
class HomeFeedJSON {
var title: String?
var author_img: URL?
var author: String?
var blog_text: String?
var post_img: URL?
var likesNumber: Int?
var commentNumber:Int?
init(items: JSON){
//self.author = items["author"].stringValue
if let userUrl = items["author"].string {
self.author = userUrl
}
if let authorImgUrl = items["author_img"].URL {
self.author_img = authorImgUrl
}
if let titleUrl = items["title"].string {
self.title = titleUrl
}
if let blogTextURL = items["blog_text"].string {
self.blog_text = blogTextURL
}
if let post_imgAA = items["post_img"].array {
for itemsIMG in post_imgAA {
if let postUrl = itemsIMG["guid"].URL {
self.post_img = postUrl
} else {
let myURL = "www.thewoodjoynt.com/Content/Images/Products/NoImageAvailable.jpg"
let noImage: URL = URL(string: myURL)!
self.post_img = noImage
}
}
}
self.likesNumber = items["show_likes"].intValue
self.commentNumber = items["show_comment_number"].intValue
}
}
のようないくつかのフィルタリングは、まだそれがクラッシュ実行しようとしました前に宣言私モデルクラスです。私にいくつかの提案、どのようにこれらのnilをフィルタリングするか教えてくださいJSONリターン。前もって感謝します。
のような問題を解決しましたか?あなたは、すべての '.xxxValue'をforce-unwrappingカウンターパートではなく、' self.likesNumber = items ["show_likes"]。intValue'と 'self.commentNumber = items [" show_comment_number "]。intValue' 'self.likesNumber = items [" show_likes "]。int'と' self.commentNumber = items ["show_comment_number"]。int'をそれぞれプラスにして、前と同じようにif-letでラップします) – HAS
いいえ、この2つの** self.likesNumber **&** self.commentNumber **は問題を起こさなかった。 ** tableViewCell **で** post_img **と呼ばれていました**それは**なしです** –