2016-09-21 3 views
0

나는 JSP 웹 응용 프로그램을 작성 중이며 지금 당황 스럽다. 각 Java 객체의 ArrayList를 사용하여 각 속성 목록을 사용하고 있습니다. 그것들은 firstName, lastName 등과 같은 속성을 가진 Order 객체입니다.이 시점에서 자바 스크립트 변수에 개별 배열을 JSON 배열로 저장해야합니다. 서블릿을 사용하여 arraylist를 JSON으로 변환 할 수 있지만 JSON은 Order 객체 각각에 대해 다음과 같은 반복 속성을가집니다.개체의 ArrayList를 별도의 JSON 개체로 변환하는 방법

[{firstName : Mike, lastName : Daniels, ..... firstName : John , lastName : Doe ... etc ...}]

분명히 JSON은 하나의 JSON 배열로 연결되는 모든 Order 개체로 구성됩니다. 내가 궁금해하는 건 내가 시간에 애플 리케이션의 주문의 수에 따라 문자열을 별도의 변수로 나눌 필요가있다.

개체가 도움이되면 어떻게 설정되는지 알려드립니다. 감사!

Object orders = request.getSession().getAttribute("orders"); 

    //this is a string of order properies/values 
    String json = new Gson().toJson(orders); 

    HttpSession session = request.getSession(); 
    session.setAttribute("jsonOrders", json); 

답변

0

전체적으로 배열 목록을 변환하는 대신 각 객체에 JSON 객체를 생성하여 배열 목록을 반복 해보십시오.

0

의이 주문 엔티티는이 같은 것입니다 가정하자 :

public class Order { 
    private String firstName; 
    private String lastName; 
    // getters & setters 
} 

와 같은 요청에 주문을 데이터를 얻을 : 당신은

를 사용하여 List<Order>로 변환 할 수 있어야한다

[{ 
    "firstName": "Mike", 
    "lastName": "Daniels" 
}, { 
    "firstName": "John", 
    "lastName": "Doe" 
}] 

List<Order> orders = gson.fromJson(response, Order.class); 

그런 다음 목록을 반복 할 수 있습니다.

for (Order order: orders) { 
    // Whatever you want to do 
} 

또는, 당신은 자바 8 사용하는 경우 : SSC에 의해

다음
orders.forEach (order -> System.out::println); 
0

이 GSON 라이브러리를 사용하여 솔루션을

//Order.java 
public class Order { 
private String firstName; 
private String lastName; 
public String getFirstName() { 
    return firstName; 
} 
public void setFirstName(String firstName) { 
    this.firstName = firstName; 
} 
public String getLastName() { 
    return lastName; 
} 
public void setLastName(String lastName) { 
    this.lastName = lastName; 
} 
} 

//Orders.java 
public class Orders { 
Order[] order; 

public Order[] getOrder() { 
    return order; 
} 

public void setOrder(Order[] order) { 
    this.order = order; 
} 
} 

import com.google.gson.Gson; 
//Solution.java 
public class Solution { 

public static void main(String[] args) { 
    String json = "{\"order\":[{\"firstName\":\"Mike\",\"lastName\":\"Daniels\"},{\"firstName\":\"John\",\"lastName\":\"Doe\"}]}"; 
    Orders orders = new Gson().fromJson(json, Orders.class); 
    Order[] orderArr = orders.getOrder(); 
    for(int i=0; i<orderArr.length;i++){ 
     System.out.println("First Name : "+ orderArr[i].getFirstName()); 
     System.out.println("Last Name "+orderArr[i].getLastName()); 
    } 
} 

} 

**Output** 

First Name : Mike 
Last Name Daniels 
First Name : John 
Last Name Doe 
0

대답이 바로 보인다. 가장 좋은 방법은 목록을 반복하는 것입니다.

관련 문제