I think your problem is in this line: printDataTable.SetData(ListAllItems)
You are extracting the list of maps from the jason into ListAllItems list and trying to put back the same list in the B4XTable. You cannot do that. You need something like this:
Code:
dim l as list
l.initialize
ListAllItems = parser.NextArray 'returns a list with maps
For i = 0 To ListAllItems.Size - 1
Dim Person As Map
Person = ListAllItems.Get(i)
Dim row() As Object
row(0) = Person.Get("name")
row(1) = Person.Get("email")
row(2) = Person.Get("city")
row(3) = Person.Get("distirct")
l.Add(row)
Next
printDataTable.SetData(l)
Also, as a side note, nothing to do with your code, but you need to change: distirct to district for proper english.