Hi everyone,
i´ve had some issues with the AddOn from Teemu Pöntelin. So i wrote my own SuperSimpleJsonContainer:
package utils.jsonContainer;
import java.util.Iterator;
import org.json.JSONArray;
import org.json.JSONException;
import com.vaadin.data.Item;
import com.vaadin.data.util.IndexedContainer;
@SuppressWarnings("serial")
public class IndexedJsonContainer extends IndexedContainer {
@SuppressWarnings({ "rawtypes", "unchecked" })
public IndexedJsonContainer(String jsonArrayAsString) {
try {
JSONArray jsonArray = new JSONArray(jsonArrayAsString);
for (int i = 0; jsonArray.length() > i; i++) {
Item item = this.getItem(this.addItem());
Iterator iterator = jsonArray.getJSONObject(i).keys();
while (iterator.hasNext()) {
Object key = iterator.next();
if (!this.getAllItemIds().contains(key))
this.addContainerProperty(key, String.class, "");
item.getItemProperty(key).setValue(jsonArray.getJSONObject(i).get((String) key));
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Usage:
String jsonArrayAsString = "[{\"Key1\":\"Value1\",\"Key2\":\"Value1\"},{\"Key1\":\"Value2\",\"Key2\":\"Value2\"},{\"Key1\":\"Value3\",\"Key2\":\"Value3\"}]
";
Container container = new IndexedJsonContainer(jsonArrayAsString);
Regards,
Michael