jsonecho

XML to Objective-C

Paste an XML document and get Objective-C types that match its structure.

Loading the tool...

How to use XML to Objective-C

  1. Paste a representative XML sample, ideally one with all the optional fields filled in.
  2. Set the name of the root type, and decide whether you want helper code as well or types only.
  3. Copy the generated Objective-C code into your project.

About XML to Objective-C

Writing model classes by hand for a big XML payload is dull, and it is where typos creep in. Paste a sample here and the generator works out the structure: which fields exist, which are objects, which are arrays and what type each value has. The output is NSObject subclasses with a QT prefix and JSON conversion helpers built on NSJSONSerialization.

XML is first converted to JSON the same way as in our XML to JSON tool: attributes get an @_ prefix and text content next to attributes is called #text. The Objective-C types are generated from that result. The header and the implementation are generated together, copy them into a .h and a .m file.

Using the generated code

Use the generated +fromJSON:encoding:error: method to turn a JSON string into an object, and -JSON to go back.

Optional values are plain object pointers that may be nil, numbers are wrapped in NSNumber.

Frequently asked questions

What does the generated Objective-C code depend on?

The output is NSObject subclasses with a QT prefix and JSON conversion helpers built on NSJSONSerialization.

How do I parse XML with the result?

Convert the XML to JSON first (our XML to JSON tool does this the same way), then use the generated +fromJSON:encoding:error: method to turn a JSON string into an object, and -JSON to go back.

How are optional and missing fields handled?

Optional values are plain object pointers that may be nil, numbers are wrapped in NSNumber.

Does the generator look at more than one record?

It only knows what is in your sample. If a field is missing from your example, it will not appear in the types, and if a value is null in your example, its type is unknown. Paste an example in which as many fields as possible are filled in, or paste an array with several different records.

Is my XML sent to a server?

No. The generator is downloaded to your browser the first time you use it, about 1 MB, and everything runs locally.

More in Data to Class

All tools →