public void ParseJSON(JSONObject jsonObject) { JSONArray recordsJSON; if (jsonObject.TryGetArray("records", out recordsJSON)) { int length = recordsJSON.Length; records = new List <NDEFRecord>(); for (int i = 0; i < length; i++) { JSONObject recordJSON = recordsJSON[i].Object; int typeValue; recordJSON.TryGetInt("type", out typeValue); NDEFRecordType type = (NDEFRecordType)typeValue; NDEFRecord record = null; switch (type) { case NDEFRecordType.ABSOLUTE_URI: record = new AbsoluteUriRecord(recordJSON); break; case NDEFRecordType.EMPTY: record = new EmptyRecord(recordJSON); break; case NDEFRecordType.EXTERNAL_TYPE: record = new ExternalTypeRecord(recordJSON); break; case NDEFRecordType.MIME_MEDIA: record = new MimeMediaRecord(recordJSON); break; case NDEFRecordType.SMART_POSTER: record = new SmartPosterRecord(recordJSON); break; case NDEFRecordType.TEXT: record = new TextRecord(recordJSON); break; case NDEFRecordType.UNKNOWN: record = new UnknownRecord(recordJSON); break; case NDEFRecordType.URI: record = new UriRecord(recordJSON); break; } records.Add(record); } } else { records = new List <NDEFRecord>(); } jsonObject.TryGetString("tag_id", out tagID); int writeStateValue; jsonObject.TryGetInt("write_state", out writeStateValue); writeState = (NDEFMessageWriteState)writeStateValue; int writeErrorValue; jsonObject.TryGetInt("write_error", out writeErrorValue); writeError = (NDEFMessageWriteError)writeErrorValue; }
public override void ParseJSON(JSONObject jsonObject) { base.ParseJSON(jsonObject); JSONObject uriRecordJSON; if (jsonObject.TryGetObject("uri_record", out uriRecordJSON)) { uriRecord = new UriRecord(uriRecordJSON); } titleRecords = new List <TextRecord>(); JSONArray titleRecordsJSON; if (jsonObject.TryGetArray("title_records", out titleRecordsJSON)) { int length = titleRecordsJSON.Length; for (int i = 0; i < length; i++) { titleRecords.Add(new TextRecord(titleRecordsJSON[i].Object)); } } iconRecords = new List <MimeMediaRecord>(); JSONArray iconRecordsJSON; if (jsonObject.TryGetArray("icon_records", out iconRecordsJSON)) { int length = iconRecordsJSON.Length; for (int i = 0; i < length; i++) { iconRecords.Add(new MimeMediaRecord(iconRecordsJSON[i].Object)); } } extraRecords = new List <NDEFRecord>(); JSONArray extraRecordsJSON; if (jsonObject.TryGetArray("extra_records", out extraRecordsJSON)) { int length = extraRecordsJSON.Length; for (int i = 0; i < length; i++) { JSONObject extraRecordJSON = extraRecordsJSON[i].Object; NDEFRecord record = null; NDEFRecordType type = (NDEFRecordType)extraRecordJSON["type"].Integer; switch (type) { case NDEFRecordType.ABSOLUTE_URI: record = new AbsoluteUriRecord(extraRecordJSON); break; case NDEFRecordType.EMPTY: record = new EmptyRecord(extraRecordJSON); break; case NDEFRecordType.EXTERNAL_TYPE: record = new ExternalTypeRecord(extraRecordJSON); break; case NDEFRecordType.MIME_MEDIA: record = new MimeMediaRecord(extraRecordJSON); break; case NDEFRecordType.SMART_POSTER: record = new SmartPosterRecord(extraRecordJSON); break; case NDEFRecordType.TEXT: record = new TextRecord(extraRecordJSON); break; case NDEFRecordType.UNKNOWN: record = new UnknownRecord(extraRecordJSON); break; case NDEFRecordType.URI: record = new UriRecord(extraRecordJSON); break; default: record = new UnknownRecord(extraRecordJSON); break; } extraRecords.Add(record); } } int actionValue; jsonObject.TryGetInt("action", out actionValue); action = (RecommendedAction)actionValue; jsonObject.TryGetInt("size", out size); jsonObject.TryGetString("mime_type", out mimeType); }