нужен вывод JSON? - PullRequest
       4

нужен вывод JSON?

3 голосов
/ 04 июля 2011

Здесь я создаю один список продуктов в Java.Мне нужен список продуктов как JSON.Как это сделать?

private List<ProductFromServiceTemp> getListFromWebservice() 
    {

        List<ProductFromServiceTemp> productList = new ArrayList<ProductFromServiceTemp>();
        for(int i = 0; i < 10; i++)
        {
            ProductFromServiceTemp product = new ProductFromServiceTemp();
            product.setName("name " + i);
            product.setDescription("desc " + i);
            product.setPrice(i * 100d);
            productList.add(product);
            System.out.println("Product = " + product);
            System.out.println("productList = " + productList);
        }

        return productList;
    }

Так что теперь, как это

`Array ar = [prod1, prod2];`

тогда

ar[i].name
ar[i].price

как получить детали продукта?пожалуйста, помогите мне.

Ответы [ 3 ]

6 голосов
/ 04 июля 2011

Я рекомендую вам взглянуть на GSon. => http://code.google.com/p/google-gson/

GSon - это библиотека Java, которая преобразует объекты Java в объекты JSON. ;)

Я обнаружил это вчера. Это великолепно; быстро и эффективно.

2 голосов
/ 04 июля 2011

Если вы выберете любую понравившуюся вам библиотеку JSON, Джексон - достойный выбор.

Ниже приводится демонстрация Джексона в действии для решения первоначально представленной проблемы.

import java.util.ArrayList;
import java.util.List;

import org.codehaus.jackson.map.ObjectMapper;

public class JacksonDemo
{
  public static void main(String[] args) throws Exception
  {
    ObjectMapper mapper = new ObjectMapper();
    List<ProductFromServiceTemp> products = getListFromWebservice();
    String json = mapper.writeValueAsString(products);
    System.out.println(json);
  }

  private static List<ProductFromServiceTemp> getListFromWebservice()
  {
    List<ProductFromServiceTemp> productList = new ArrayList<ProductFromServiceTemp>();
    for (int i = 0; i < 10; i++)
    {
      ProductFromServiceTemp product = new ProductFromServiceTemp();
      product.setName("name " + i);
      product.setDescription("desc " + i);
      product.setPrice(i * 100d);
      productList.add(product);
    }
    return productList;
  }
}

class ProductFromServiceTemp
{
  private String name;
  private String description;
  private double price; // Don't use double type for financial information.

  public String getName() {return name;}
  public void setName(String name) {this.name = name;}
  public String getDescription() {return description;}
  public void setDescription(String description) {this.description = description;}
  public double getPrice() {return price;}
  public void setPrice(double price) {this.price = price;}
}

Вывод JSON:

[
    {
        "name": "name 0",
        "description": "desc 0",
        "price": 0
    },
    {
        "name": "name 1",
        "description": "desc 1",
        "price": 100
    },
    {
        "name": "name 2",
        "description": "desc 2",
        "price": 200
    },
    {
        "name": "name 3",
        "description": "desc 3",
        "price": 300
    },
    {
        "name": "name 4",
        "description": "desc 4",
        "price": 400
    },
    {
        "name": "name 5",
        "description": "desc 5",
        "price": 500
    },
    {
        "name": "name 6",
        "description": "desc 6",
        "price": 600
    },
    {
        "name": "name 7",
        "description": "desc 7",
        "price": 700
    },
    {
        "name": "name 8",
        "description": "desc 8",
        "price": 800
    },
    {
        "name": "name 9",
        "description": "desc 9",
        "price": 900
    }
]
1 голос
/ 04 июля 2011

Есть много способов сделать это, начиная от простых библиотек объектов JSON и заканчивая технологиями, поддерживающими двунаправленные отображения.

Посмотрите на http://json.org список доступных вам опций. (Есть 21 запись для Java ... что слишком много , чтобы попытаться обобщить здесь.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...