diff --git a/Source/SwiftyJSON.swift b/Source/SwiftyJSON.swift index 5f09d705..b2c17020 100644 --- a/Source/SwiftyJSON.swift +++ b/Source/SwiftyJSON.swift @@ -855,9 +855,7 @@ extension JSON { // : Swift.Bool case .number: return self.rawNumber.boolValue case .string: - return ["true", "y", "t"].contains { (truthyString) in - return self.rawString.caseInsensitiveCompare(truthyString) == .orderedSame - } + return ["true", "y", "t", "yes", "1"].contains { self.rawString.caseInsensitiveCompare($0) == .orderedSame } default: return false } diff --git a/Tests/SwiftyJSONTests/SubscriptTests.swift b/Tests/SwiftyJSONTests/SubscriptTests.swift index 78e6c075..0673f3a0 100644 --- a/Tests/SwiftyJSONTests/SubscriptTests.swift +++ b/Tests/SwiftyJSONTests/SubscriptTests.swift @@ -121,7 +121,9 @@ class SubscriptTests: XCTestCase { } func testDictionaryAllBool() { - var json: JSON = ["t": true, "f": false, "false": false, "tr": true, "true": true] + var json: JSON = ["t": true, "f": false, "false": false, "tr": true, "true": true, "yes": true, "1": true] + XCTAssertTrue(json["1"] == true) + XCTAssertTrue(json["yes"] == true) XCTAssertTrue(json["t"] == true) XCTAssertTrue(json["f"] == false) XCTAssertTrue(json["false"] == false)