我會盡量使這個問題儘可能徹底。需要幫助準備從PHP的混合來源準備JSON的JSON
開始,在我的代碼,我有以下結構定義:
struct LogInfo {
var logNumber: Int
var species: String
var diameter: Float
var formClass: Int
var numLogs: Float
var boardFootage: Double
static func jsonArray(array : [LogInfo]) -> String {
return "[" + array.map {$0.jsonRepresentation}.joinWithSeparator(",") + "]"
}
var jsonRepresentation : String {
return "{\"logNumber\":\"\(logNumber)\",\"species\":\"\(species)\",\"diameter\":\"\(diameter)\",\"formClass\":\"\(formClass)\",\"numLogs\":\"\(boardFootage)\"}"
}
}
這基本上創建了界定結構的JSON表示。
在我的代碼另一部分,我撰寫JSON字符串如下:
let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
guard let URL = NSURL(string: "http://logster.dynamiscms.com/jsonTest.php") else {return}
let request = NSMutableURLRequest(URL: URL)
request.HTTPMethod = "POST"
// Headers
request.addValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
//Get the JSON Array from the Struct
let jsonArray = LogInfo.jsonArray(logArray)
// Compose the JSON Body
let bodyObject = [
"propertyOwner": "\(propertyOwner)",
"propertyID": "\(propertyID)",
"scaledBy": "\(scaledBy)",
"acres": "\(acres)",
"notes": "\(notes)",
"logDetails": jsonArray
]
一切到這一點基本上採用的是被傳遞到我的SEGUE 5個變量,然後追加的JSON在結構中準備好了。
我想將我編譯的JSON傳遞給PHP腳本,然後解析該JSON並最終將其存儲到數據庫中。
我沒有在我的代碼中發現任何錯誤 - 但是JSON沒有正確地準備好,這導致我無法通過PHP解析它。
基於這段代碼,我能夠用PHP解析前五個值(propertyOwner,propertyID,scaledBy,英畝和註釋)。但是,當我進入細節數組時,我無法進入這些嵌套值。
看來,當我將它傳遞到我的PHP腳本,它吐出以此爲JSON等(我知道是不是有效的JSON):
[
"notes": "This is a test.",
"propertyID": "Beam Residence",
"acres": "1",
"scaledBy": "Andy Spencer",
"propertyOwner": "Jim Beam",
"logDetails": "
{\"logNumber\":\"1\",\"species\":\"White Pine\",\"diameter\":\"18.0\",\"formClass\":\"78\",\"numLogs\":\"124.56227\"},
{\"logNumber\":\"2\",\"species\":\"Hemlock\",\"diameter\":\"17.0\",\"formClass\":\"78\",\"numLogs\":\"147.0589725\"},
{\"logNumber\":\"3\",\"species\":\"Spruce\",\"diameter\":\"21.0\",\"formClass\":\"82\",\"numLogs\":\"335.9106016\"}"
]
是任何人能幫助我意義我錯過了什麼?
這有竅門!非常感謝。你不知道這實際上對我有多大幫助! –