Sample code for 30+ languages & platforms
Swift Requires Chilkat v11.0.0+

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"
    //    }
    //  }

}