Sample code for 30+ languages & platforms
Swift

Swap JSON Objects

See more JSON Examples

Demonstrates how to swap two JSON objects within a JSON document.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let json = CkoJsonObject()!
    json.emitCompact = false

    // Load the following JSON:

    // {
    //   "petter": {
    //     "DOB": "26/02/1986",
    //     "gender": "male",
    //     "country": "US"
    //   },
    //   "Sara": {
    //     "DOB": "13/05/1982",
    //     "gender": "female",
    //     "country": "FR"
    //   },
    //   "Jon": {
    //     "DOB": "19/03/1984",
    //     "gender": "male",
    //     "country": "UK"
    //   }
    // }

    success = json.loadFile(path: "qa_data/json/people.json")
    if success == false {
        print("\(json.lastErrorText!)")
        return
    }

    // Swap the positions of Jon and Sara.
    var index1: Int = json.index(of: "Jon").intValue
    var index2: Int = json.index(of: "Sara").intValue
    json.swap(index1: index1, index2: index2)

    // We have this now:
    print("\(json.emit()!)")

    // {
    //   "petter": {
    //     "DOB": "26/02/1986",
    //     "gender": "male",
    //     "country": "US"
    //   },
    //   "Jon": {
    //     "DOB": "19/03/1984",
    //     "gender": "male",
    //     "country": "UK"
    //   },
    //   "Sara": {
    //     "DOB": "13/05/1982",
    //     "gender": "female",
    //     "country": "FR"
    //   }
    // }

    // To swap an inner member:

    let jsonSara = CkoJsonObject()!
    json.objectOf2(jsonPath: "Sara", jsonObj: jsonSara)

    index1 = jsonSara.index(of: "DOB").intValue
    index2 = jsonSara.index(of: "country").intValue
    jsonSara.swap(index1: index1, index2: index2)

    // We now have this:
    print("\(json.emit()!)")

    // {
    //   "petter": {
    //     "DOB": "26/02/1986",
    //     "gender": "male",
    //     "country": "US"
    //   },
    //   "Jon": {
    //     "DOB": "19/03/1984",
    //     "gender": "male",
    //     "country": "UK"
    //   },
    //   "Sara": {
    //     "country": "FR",
    //     "gender": "female",
    //     "DOB": "13/05/1982"
    //   }
    // }

}