2011-07-04 15 views
2

ここでは、Javaで1つの製品リストを作成しています。私はJSONとして製品リストが必要です。これを行う方法 ?に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 

は、どのように製品の詳細を取得するには?私を助けてください。

+0

特定のJSONライブラリを使用しているのですか、それとも適切であると思われるライブラリを使用していますか? –

+1

あなたの質問は曖昧です。どのJSONテクノロジーを使用していますか?そこにはたくさんの図書館があります。 – drekka

+0

私はJSONにjavaで製品リストを解析したいですか?解析する方法を言う? – selladurai

答えて

6

私はGSonを見てお勧めします。 =>http://code.google.com/p/google-gson/

GSonは、JavaオブジェクトをJSONオブジェクトに変換するJavaライブラリです。 ;)

私はそれを昨日発見しました。それは素晴らしい;迅速かつ効率的です。

+1

+1私は最近gsonを私のプロジェクトに取り入れました...それは岩です – Bohemian

2

好きなJSONライブラリを選択すると、Jacksonが適切です。

以下は、当初提示された問題を解決するための行動のジャクソンのデモです。

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

は、単純なJSONオブジェクトライブラリからの双方向のマッピングをサポートする技術に至るまで、これを行うには多くの方法があります。

ご利用いただけるオプションのリストについては、http://json.orgをご覧ください。 (Javaのための21のエントリーがあります... あまりにも多いですここに要約しようとします)

関連する問題