How to create the model class for the following JSON data and parse it?

json model object
how to fetch data from model class in android
android json to object
json to java class android
convert json to java object
how to create json file in android
convert json to class object c#
android studio convert json to object

My JSON data

{
 "addon_items" : [
                     {
                      "aname" : "",
                      "id" : "2588",
                      "name" : "Plain Nan",
                      "order" : "1",
                      "aid" : "259",
                      "Sub_Add_Items" : "",
                      "icon" : "",
                      "status" : "1",
                      "next" : "0",
                      "price" : "0.60"
                     },
                     {
                      "aname" : "",
                      "id" : "2589",
                      "name" : "Pitta Bread",
                      "order" : "2",
                      "aid" : "259",
                      "Sub_Add_Items" : "",
                      "icon" : "",
                      "status" : "1",
                      "next" : "0",
                      "price" : "0.00"
                    }

                   ],

 "addon" : {
             "description" : "Please choose your Nan bread",
             "aname" : "",
             "id" : "259",
             "icon" : "",
             "limit" : "1",
             "special_addon" : "",
             "next" : "165"
           }
 }

I created three class models named AddOnResponse, AddOn, AddOnItems like this:

AddOnResponse class model

class AddOnResponse {

var addon: Array<String>?
var addonitems: Array<AnyObject>?

init(addon:Array<String>?,addonitems: Array<AnyObject>?){
    self.addon = addon
    self.addonitems = addonitems
 }
}

AddOn class model

class AddOn {


var id: Int?
var icon: String?
var desc: String?
var limit: Int?
var next: Int?
var aname: String?
var specialaddon: Int?

init(id: Int?,icon: String?,desc: String?,limit: Int?,next: Int?,aname: String?,specialaddon: Int?){

    self.id = id
    self.icon = icon
    self.desc = desc
    self.limit = limit
    self.next = next
    self.aname = aname
    self.specialaddon = specialaddon

  }
 }

AddOnItems class model

class AddOnItems {


var id: Int?
var aid: Int?
var name: String?
var price: Int?
var order: Int?
var status: Int?
var next: Int?
var aname: String?
var subaddItems: Int?
var icon: String?

init(id: Int?,aid: Int?,name: String?,price: Int?,order: Int?,status: Int?,next: Int?,aname: String?,subaddItems: Int?,icon: String?){
    self.id = id
    self.aid = aid
    self.name = name
    self.price = price
    self.order = order
    self.status = status
    self.next = next
    self.aname = aname
    self.subaddItems = subaddItems
    self.icon = icon
   }
 }

Now I am fetching my JSON data using Alamofire but when accepting dat into class model using object I am getting nil value.

    var addonResponses = [AddOnResponse]()

    Alamofire.request(.GET, myAddOnUrl)
        .validate()
        .responseJSON
        {   response in
            switch response.result
            {
            case .Success:
                if let value = response.result.value{
                    let json = JSON(value)
                    print(json)
                    print(json["addon"].arrayValue)


           for(_,content) in json{
               let addOnRes = AddOnResponse(addon:content["addon"].arrayValue,
                               addonitems:content["addon_items"].Arrayobject)

                        print(self.addonResponses.count)
                        print(addOnRes.addon)
                        print(addOnRes.addonitems)
                    }
                }

The addon and addonitems data are coming nil, why?

After going through your JSON response, what I see is that you are getting an object which has two nodes(or properties). First- "addon_items" which has as array and for which you have created a class AddOnItems which is correct. Second- "addon": this key over here is reference to a 'Dictionary' rather than to an array.

So to store the response in your AddOnResponse object, try the following code.

Alamofire.request(.GET, myAddOnUrl).validate().reponseJSON { response in
    switch resonse.result {
    case .Success:
       if let value = response.result.value {
           let json = JSON(value)
           let responseDictionary = json.dictionaryValue as? [String: AnyObject]
           let addOnRes = AddOnResponse(addon:responseDictionary["addon"].dictionaryValue, addonitems:responseDictionary["addon_items"].arrayValue)
       }
    case .Failure:
       break
    } 
}

Also make change to your AddOnResponse class

class AddOnResponse {
    var addon: [String: AnyObject]?
    var addonitems: Array<AnyObject>?

    init(addon:[String: AnyObject]?,addonitems: Array<AnyObject>?){
        self.addon = addon
        self.addonitems = addonitems
    }
}

TL;DR Your JSON response doesn't properly correspond to the model you've made in your app. Double check the "addon" key of your json response which has a dictionary object to it and NOT AN ARRAY and accordingly make your model classes.

Edit: Rectifying the mistake to point the casting error. What I would now suggest is that pass the JSON object for `add_on' key. In the AddOn class change the initialiser so that it takes a JSON object. Then initialising them using. AddOn Class Initialiser

init(json: JSON) {
    id = json["id"].intValue
    name = json["name"].stringValue
    // and so on
}

Similarly do the same for AddOnItems. And in the AddOnResponse initialiser iterate in a loop the JSON object for AddOnItems. Initialise it and append to the addOnItems array property. Sorry cannot write the code for it right now. Got a time constraint.

How to create model class for json parsing?, I need to create the model class for the following type of json: You can generate model from json automatically using online tools like THIS SerializedName; @Generated("org.jsonschema2pojo") public class AdditinalInfo { @SerializedName("Tag") @Expose braces are for object and [] are Arrays . Here, we include a constructor for our Restaurant model and getters for each member variable. Parsing JSON and Creating Objects. Next, we need to parse the JSON data from the API's response, and pass them into our Restaurant constructor. We will do this in the YelpService class by creating a new method called processResults().

import Foundation
import SwiftyJSON

class UserInfo {

    var mobile : Int?
    var userid : Int?
    var email : String?
    var name : String?

    init() {

    }

    init(json : JSON){
        mobile = json["phone_number"].intValue
        userid = json["id"].intValue
        email = json["email"].stringValue
        name = json["name"].stringValue
    }

}

JSON and Data Models, In this lesson we will parse out the data we need from Yelp's JSON response and build a constructor to create Let's begin by creating a new class in the main package named Restaurant.java. Within it, we'll include the following code:. The core client library interfaces refer to application data objects using the abstract class googleapis::client::SerializableJson. This class is so abstract that it only knows how to serialize and deserialize the instance in and out of JSON. In theory this makes the core client library independent of the JSON implementation.

After so many experiments I got the answer. I have to pass the data to objects like this way. i followed @nishantdesai answers and do some modifications..

 Alamofire.request(.GET, myAddOnUrl)
        .validate()
        .responseJSON
        {   response in
            switch response.result
            {
            case .Success:
                if let value = response.result.value{
                    let json = JSON(value)

                    let addOnRes = AddOnResponse(addon: json["addon"].object as? [String : AnyObject],
                                                addonitems: json["addon_items"].arrayObject)
                    print(addOnRes.addon)
                    print(addOnRes.addonitems)



                }

Easy JSON Parsing, How to create the model class for the following JSON data and parse it? - json. Java API for JSON Processing (JSON-P) provides portable APIs to parse, generate, transform, and query JSON using object model and streaming APIs. There are two ways two work with JSON in JSON-P: streaming API and object model API. JSON-P Streaming API. The streaming API hands over parsing and generation control to the programmer.

Try this. I have done this using AlamofireObjectMapper. Check AlamofireObjectMapper for more info

import UIKit
import ObjectMapper


class FollowList: Mappable {

    var addonItems : [addonItemsList]?
    required init?(_ map: Map) {
        super.init(map)
    }
    override func mapping(map: Map) {
        super.mapping(map)

        addonItems <- map["addon_items"]
    }
    }
     class addonItemsList : Mappable{
    var aname : String?
    var id : String?
    var name : String?
    var order : Int?
    var aname : Int?

    required init?(_ map: Map) {

    }
    func mapping(map: Map) {

        aname <- map["aname"]
        id <- map["id"]
        order <- map["order"]
        name <- map["name"]
        icon <- map["icon"]

    }

}

       let URL = "https://raw.githubusercontent.com/tristanhimmelman/AlamofireObjectMapper/2ee8f34d21e8febfdefb2b3a403f18a43818d70a/sample_keypath_json"


          Alamofire.request(.GET, URL)..responseArray { (response: Response<[FollowList], NSError>) in { (response: Response< FollowList, NSError>) in
    expectation.fulfill()

    let FollowList = response.result.value
    print(FollowList?. addonItems)

}

How to Create JSON Structure Using C# (JSON Creation Part 2), Easy JSON Parsing - 5 Steps to Generate Data Models with Xcode Playgrounds and Codable However, though converting the JSON payload to a Swift data structure was relatively In RocketModel.swift, paste the following**: Pro tip: to expose the classes and types in your Sources folder to the main  How to parse JSON in Java JSON (JavaScript Object Notation) is a lightweight, text-based, language-independent data exchange format that is easy for humans and machines to read and write. JSON can represent two structured types: objects and arrays.

Its very simple to create model class, please follow the below procedure.

Create swift class with name "Sample", write the code as below.

Class Sample{
    var id:String?
    var aname:String?
    var name:String?
    var order:String?
    var aid:String?
    var Sub_Add_Items:String?
    var icon:String?
    var status:String?
    var next:String?
    var price:String?
    func update(info: JSON) {
        id = data["id"].string
        aname = data["aname"].string
        name = data["name"].string
        order = data["order"].string
        aid = data["aid"].string
        Sub_Add_Items = data["Sub_Add_Items"].string
        icon = data["icon"].string
        status = data["status"].string
        next = data["next"].string
        price = data["price"].string
    }
}

and also create one more swift class as "Details" code as below,

Class Details{
    var list: [Sample] = [Sample]()
    func addDetails(data: JSON){
        for(_, detailObj) in data {
            let sampleObj = Sample()
            sampleObj.update(detailObj)
            list.append(sampleObj)
        }
    }
}

and in your viewcontroller before viewdidload() method create an object of Details class as

var detailsObj = Details()

After you got the response from alamofire request method, call the method as below:

self.detailsObj.addDetails(data!["addon_items"] as JSON)

Data is nothing but the response that you get from alamofire.

Later you can access the variables as below:

detailsObj.list[0].name

and you can display it.

Getting Started with JSONModel - Code Tuts, To access office object, C# offers us the in the Employee class as we will be returning To do that we will directly parse the value Following JSON will be generated:. JSON Parsing in Swift. We will create the Model class based on the response. This topic will cover most of the part-related parsing from a basic level to an advanced one. //Decode JSON

JSON - Quick Guide, Let's start by creating the model classes to match the JSON data. Create a new class, JokeModel , and make it inherit from JSONModel . Add id  Trailing commas are not valid in JSON, so JSON.parse() throws if the string passed to it has trailing commas. JSON.stringify() JSON.stringify() can take two additional arguments, the first one being a replacer function and the second a String or Number value to use as a space in the returned string.

JsonParser (JSON Documentation), JSON - Quick Guide - JSON or JavaScript Object Notation is a lightweight text-​based The following example shows how to use JSON to store information related to Let us see the various ways of creating JSON objects using JavaScript − can use TO_JSON method on the object's class to convert an object into JSON. A common use of JSON is to exchange data to/from a web server. When receiving data from a web server, the data is always a string. Parse the data with JSON.parse(), and the data becomes a JavaScript object.

Java API for JSON Processing, Provides forward, read-only access to JSON data in a streaming way. The class Json contains methods to create parsers from input sources ( InputStream and Reader ). The following example demonstrates how to create a parser from a string that JsonParser parses JSON using the pull parsing programming model​. Trailing commas are not valid in JSON, so JSON.parse() throws if the string passed to it has trailing commas. JSON.stringify() JSON.stringify() can take two additional arguments, the first one being a replacer function and the second a String or Number value to use as a space in the returned string.

Comments
  • Use Gloss rather than Swifty-json , if will be helpful.
  • cause addon_items is an array and addon is a dictionary
  • ok then tell me the solution ,, hwz the class model should be for 'addon' and 'addon_items' and how to pass it in the modal@ÖzgürErsil
  • Thanks but most of the part i have handled using swiftyJson. so I dont want to use another third party..so if any solution regarding this help me out.. @Md.MuzahidulIslam
  • Yes agreed @iMuzahid, gloss will make the task lot easier although you can use codable too, try different models you can generate here jsoncafe.com
  • when I used this code i get error in this line......let responseDictionary = json.dictionaryValue as? [String: AnyObject]
  • error is " Cannot convert value of type '[String : JSON]' to type '[String : AnyObject]' in coercion"
  • Don't cast it as [String: AnyObject]. That error was there because there are is more nested data. Cast them at the time of passing it to the initialiser. The reason for this that every last node in a JSON object (SwiftJSON) is of type JSON until and unless you cast it to the last descendant.
  • still issue. could you able to edit your answer accordingly
  • I got the AddOnResponse with few modifications as I posted in my answer. Thanks