Android Question JSON: how to name objects

peacemaker

Expert
Licensed User
Longtime User
B4X:
{"project":{"project_id":"8","project_name":"PrName","version":"2013-10-20 12:05:49","sync_time":"10","sync_auto":"1","battery_min":"10","signal_min":"19","wifi_time":"10","signal_time":"1","battery_video":"video_1.mp4","signal_video":"video_26.mp4"},"device":{"device_id":"4","device_name":"MyDevice","device_key":"456"},"bluetooths":[{"id":"47","mac_address":"20:13:05:06:39:22","name":"HC-06","min_signal":"109","switch_off_time":"24","type":"1","assets":["image_18.jpg"]},{"id":"77","mac_address":"32:41:C0:0F:66:12","name":"Btdev","min_signal":"129","switch_off_time":"0","type":"1","assets":["image_24.png"]},{"id":"46","mac_address":"EC:9B:5B:FB:6C:07","name":"Nokia","min_signal":"160","switch_off_time":"10","type":"0","assets":["image_61.jpeg"]},{"id":"50","mac_address":"00:24:03:C6:88:66","name":"Dev2","min_signal":"168","switch_off_time":"1","type":"0","assets":["image_61.jpeg"]}]}

How to generate such code with named objects ?
 

peacemaker

Expert
Licensed User
Longtime User
Erel - not parse - to generate this code.
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
Search for "json create" and you will be pointed to a json-tutorial. There is also an example to create json

B4X:
    Dim retmap As Map
    retmap.Initialize
    retmap.Put("tag","TagValue")
    retmap.Put("itemID","ItemID")
    retmap.Put("name","ItemName")
    retmap.Put("line1","This is line 1")
    retmap.Put("line2","This is line 2")

    Dim JSONGenerator As JSONGenerator
  JSONGenerator.Initialize(retmap)
    Msgbox(JSONGenerator.ToPrettyString(2), "")
 
Last edited:
Upvote 0

peacemaker

Expert
Licensed User
Longtime User
Thanks, seems, like that:

HTML:
Dim Map1, m1 As Map, list1, list2 As List, size, ass As Cursor, a, id As String
Map1.Initialize
list1.Initialize
size = SQL.ExecQuery("SELECT mac_address, id FROM bluetooths")
For i = 0 To size.RowCount - 1
    size.Position = i
    a = size.GetString("mac_address")
    m1 = DBUtils.ExecuteMap(SQL, "SELECT name,mac_address,id,switch_off_time,type,min_signal FROM bluetooths WHERE mac_address = '" & a & "'", Null)
    list2.Initialize
    id = size.GetString("id")
    ass = SQL.ExecQuery("SELECT path FROM assets WHERE bluetooth_id = '" & id & "'")
    For j = 0 To ass.RowCount - 1
        ass.Position = j
        list2.Add(ass.GetString2(0))
    Next
    m1.Put("assets", list2)
    list1.Add(m1)
Next
Map1.put("bluetooths", list1)
m1 = DBUtils.ExecuteMap(SQL, "SELECT * FROM device", Null)
Map1.put("device", m1)
m1 = DBUtils.ExecuteMap(SQL, "SELECT * FROM project", Null)
Map1.put("project", m1)

Dim gen As JSONGenerator 'Requires a reference to the JSON library.
gen.Initialize(Map1)
Return gen.ToString
 
Upvote 0
Top