Advertisement
Guest User

JSON Help

a guest
Oct 17th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.79 KB | None | 0 0
  1. //
  2. //  ContentView.swift
  3. //  JSONListApp
  4. //
  5. //  Created by Dev on 17/10/2019.
  6. //  Copyright © 2019 jdc0rp. All rights reserved.
  7. //
  8.  
  9. import SwiftUI
  10. import Combine
  11.  
  12. struct Item : Decodable {
  13.     let product_name : String
  14. }
  15.  
  16. struct Product : Decodable {
  17.     let product_name : String
  18. }
  19.  
  20. class NetworkManager : ObservableObject {
  21.     var didChange = PassthroughSubject<NetworkManager, Never>()
  22.    
  23.    
  24.     var items = [Item]() {
  25.         didSet {
  26.             didChange.send(self)
  27.         }
  28.     }
  29.    
  30.     init() {
  31.         guard let url = URL(string : "https://world.openfoodfacts.org/api/v0/product/737628064502.json") else { return }
  32.        
  33.         URLSession.shared.dataTask(with: url) { (data, response, error) in
  34.            
  35.             guard let data = data else { return }
  36.             //print("Data is : \(data) ")
  37.            
  38.             let json = try! JSONSerialization.jsonObject(with: data, options: []) as? [[String : Any]]
  39.             //print(json)
  40.             print("Converting to array")
  41.            
  42.             let dictionary = json as? [String : Any]
  43.            
  44.             let product = dictionary?["product"]
  45.            
  46.                        
  47.             print(product)
  48.            
  49.         print("Completed fetching json data")
  50.         }.resume()
  51.     }
  52. }
  53.  
  54. struct ContentView: View {
  55.    
  56.     @State var networkManager = NetworkManager()
  57.    
  58.     var body: some View {
  59.         NavigationView {
  60.             List {
  61.                 ForEach(networkManager.items, id: \.product_name) { item in
  62.                     Text(item.product_name)
  63.                 }
  64.             }.navigationBarTitle(Text("Items"))
  65.         }
  66.     }
  67. }
  68.  
  69. struct ContentView_Previews: PreviewProvider {
  70.     static var previews: some View {
  71.         ContentView()
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement