<h4>@(item.Quantity != 0? $"({item.Quantity})" : "")</h4>
Когда вы наберете @()
, все внутри () будет выполнено как код C #
Необходимо закончить с JSONArray (соответствующий Списку) JSONObjects (Карта).
Попытка, объявляющая json переменную, поскольку, JSONArray вместо JSONObject (я верю конструктору JSONArray, сделает правильную вещь).
Вам вложили карту в списке. Вы пытаетесь назвать Карту, никогда не выполняя итерации через список сначала. JSON иногда чувствует себя подобно волшебству, но на самом деле это не. Я отправлю некоторый код через мгновение.
Это более согласовывалось бы с JSON для создания Карты Карт вместо Списка Карт.
JSONObject json = new JSONObject(list);
Iterator<?> it = json.keys();
while (keyed.hasNext()) {
String x = (String) it.next();
JSONObject jo2 = new JSONObject(jo.optString(x));
}
Также: Вы могли рассмотреть использование одного из других синтаксических анализаторов из списка json.org: большинство из них позволяет Вашему Json "объекты" и "массивы" для отображения исходно на java.util. Карты и java.util. Списки; или в некоторых случаях к реальному Java возражает также.
Моей рекомендацией был бы Jackson, http://jackson.codehaus.org/Tutorial , который допускает отображение на Список/Карту/Целое число/Строку/Булевскую переменную/пустой указатель, а также на реальный Beans/POJOs. Просто дайте ему тип, и это отображает данные на Вас или пишет объекты Java как Json. Другие как "json-инструменты" от berlios или google-gson также представляют схожую функциональность.
У меня это сработало:
List<JSONObject> jsonCategories = new ArrayList<JSONObject>();
JSONObject jsonCategory = null;
for (ICategory category : categories) {
jsonCategory = new JSONObject();
jsonCategory.put("categoryID", category.getCategoryID());
jsonCategory.put("desc", category.getDesc());
jsonCategories.add(jsonCategory);
}
try {
PrintWriter out = response.getWriter();
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
_log.info(jsonCategories.toString());
out.write(jsonCategories.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("abc", "123456");
map.put("def", "hmm");
list.add(map);
// it's wrong JSONObject json = new JSONObject(list);
// if u use list to add data u must be use JSONArray
JSONArray json = JSONArray.fromObject(list);
try {
System.err.println(json.toString(2));
} catch (JSONException e) {
e.printStackTrace();
}