2016-10-05 4 views
-2

Я уже создал успокоительный api, используя java и glassfish, но у меня возникла проблема (а не ошибка).Удалить сообщение от ответа JSON?

Когда я получаю ответ JSON от моего API, он отлично работает, но содержит имя компонентов.

{"***countriesBean***":[ //(I need my response without this field) 
    {"CountryID":"3","CountryName":"asdasdasd","DefaultCurrencyID":"0","DefaultLanguageID":"0"},{"CountryID":"16","CountryName":"sddd","DefaultCurrencyID":"1","DefaultLanguageID":"0"},{"CountryID":"1","CountryName":"Lebanon","DefaultCurrencyID":"3","DefaultLanguageID":"0"},{"CountryID":"2","CountryName":"asdasd","DefaultCurrencyID":"0","DefaultLanguageID":"2"} 
] 
} 
+1

Просьба представить ваш образец кода для получения более подробной информации. – Minh

+1

Почему вы хотите удалить? вы можете легко разобрать этот json. – Ravikumar

+0

XmlRootElement XmlAccessorType (XmlAccessType.NONE) общественного класса CountriesBean { // @XmlElement XmlElement (имя = "CountryId") частное Integer COUNTRY_ID; XmlElement (name = "CountryName") public Integer getCOUNTRY_ID() { return COUNTRY_ID; } public void setCOUNTRY_ID (Integer COUNTRY_ID) { this.COUNTRY_ID = COUNTRY_ID; } public String getCOUNTRY_NAME() { возвращение COUNTRY_NAME; } public void setCOUNTRY_NAME (String COUNTRY_NAME) { this.COUNTRY_NAME = COUNTRY_NAME; }} –

ответ

0

это боба

package beans; 

import javax.ws.rs.FormParam; 
import javax.xml.bind.annotation.XmlAccessType; 
import javax.xml.bind.annotation.XmlAccessorType; 
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 

/** 
* 
* @author ahmad.s 
*/ 
@XmlRootElement 
@XmlAccessorType(XmlAccessType.NONE) 
public class CountriesBean { 

// @XmlElement 

    @XmlElement(name="CountryID") 
    private Integer COUNTRY_ID; 
    @XmlElement(name="CountryName") 
    private String COUNTRY_NAME; 
    @XmlElement(name="LanguageID") 
    private Integer LANGUAGE_ID; 
    @XmlElement(name="DefaultCurrencyID") 
    private Integer DEFAULT_CURRENCY_ID; 
    @XmlElement(name="DefaultLanguageID") 
    private Integer DEFAULT_LANGUAGE_ID; 
    @XmlElement(name="TaskID") 
    private Integer TASK_ID; 
    @XmlElement(name="CurrencyID") 
    private Integer CURRENCY_ID; 

    public Integer getCURRENCY_ID() { 
     return CURRENCY_ID; 
    } 

    public void setCURRENCY_ID(Integer CURRENCY_ID) { 
     this.CURRENCY_ID = CURRENCY_ID; 
    } 

    public Integer getTASK_ID() { 
     return TASK_ID; 
    } 

    public void setTASK_ID(Integer TASK_ID) { 
     this.TASK_ID = TASK_ID; 
    } 

    public Integer getDEFAULT_LANGUAGE_ID() { 
     return DEFAULT_LANGUAGE_ID; 
    } 

    public void setDEFAULT_LANGUAGE_ID(Integer DEFAULT_LANGUAGE_ID) { 
     this.DEFAULT_LANGUAGE_ID = DEFAULT_LANGUAGE_ID; 
    } 

    public Integer getDEFAULT_CURRENCY_ID() { 
     return DEFAULT_CURRENCY_ID; 
    } 

    public void setDEFAULT_CURRENCY_ID(Integer DEFAULT_CURRENCY_ID) { 
     this.DEFAULT_CURRENCY_ID = DEFAULT_CURRENCY_ID; 
    } 

    public Integer getCOUNTRY_ID() { 
     return COUNTRY_ID; 
    } 

    public void setCOUNTRY_ID(Integer COUNTRY_ID) { 
     this.COUNTRY_ID = COUNTRY_ID; 
    } 

    public String getCOUNTRY_NAME() { 
     return COUNTRY_NAME; 
    } 

    public void setCOUNTRY_NAME(String COUNTRY_NAME) { 
     this.COUNTRY_NAME = COUNTRY_NAME; 
    } 

    public Integer getLANGUAGE_ID() { 
     return LANGUAGE_ID; 
    } 

    public void setLANGUAGE_ID(Integer LANGUAGE_ID) { 
     this.LANGUAGE_ID = LANGUAGE_ID; 
    } 
} 

этого Страны класса обслуживания

package service; 

import beans.CountriesBean; 
import com.xperteam.DBC.DataBaseConnection; 
import entity.Countries; 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Types; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.ejb.Stateless; 
import javax.naming.NamingException; 
import javax.persistence.EntityManager; 
import javax.persistence.PersistenceContext; 
import javax.ws.rs.Consumes; 
import javax.ws.rs.DELETE; 
import javax.ws.rs.GET; 
import javax.ws.rs.POST; 
import javax.ws.rs.PUT; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.Produces; 
import javax.ws.rs.QueryParam; 
import javax.ws.rs.core.MediaType; 

/** 
* 
* @author ahmad.s 
*/ 
@Stateless 
@Path("countries") 
public class CountriesFacadeREST extends AbstractFacade<Countries> { 

    @PersistenceContext(unitName = "WeddingRestApiPU") 
    private EntityManager em; 

    public CountriesFacadeREST() { 
     super(Countries.class); 
    } 

    @POST 
    @Override 
    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
    public void create(Countries entity) { 
     super.create(entity); 
    } 

    @PUT 
    @Path("{id}") 
    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
    public void (@PathParam("id") Long id, Countries entity) { 
     super.(entity); 
    } 

    @DELETE 
    @Path("{id}") 
    public void remove(@PathParam("id") Long id) { 
     super.remove(super.find(id)); 
    } 

    @GET 
    @Path("{id}") 
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
    public Countries find(@PathParam("id") Long id) { 
     return super.find(id); 
    } 

    @GET 
    @Override 
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
    public List<Countries> findAll() { 
     return super.findAll(); 
    } 

    @GET 
    @Path("{from}/{to}") 
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
    public List<Countries> findRange(@PathParam("from") Integer from, @PathParam("to") Integer to) { 
     return super.findRange(new int[]{from, to}); 
    } 

    @GET 
    @Path("count") 
    @Produces(MediaType.TEXT_PLAIN) 
    public String countREST() { 
     return String.valueOf(super.count()); 
    } 

    @Override 
    protected EntityManager getEntityManager() { 
     return em; 
    } 

    @GET 
    @Path("/getAllCountries") // webresources/beans.contactbean/getContactID?ContactID=? get contact info by id 
    @Produces(MediaType.APPLICATION_JSON) 
    public ArrayList<CountriesBean> getAllCountries() { 

     PreparedStatement preparedStatement = null; 
     ResultSet resultSet = null; 

     ArrayList<CountriesBean> CountriesList = new ArrayList<CountriesBean>(); 
     CountriesBean CountriesBean = null; 
     StringBuffer query = new StringBuffer(); 

     query.append(" SELECT "); 
     query.append(" COUNTRIES.COUNTRY_ID, "); 
     query.append(" COUNTRIES_TRANS.COUNTRY_TRANS_NAME,COUNTRIES.DEFAULT_CURRENCY_ID,COUNTRIES.DEFAULT_LANGUAGE_ID "); 
     query.append(" FROM COUNTRIES INNER JOIN COUNTRIES_TRANS ON COUNTRIES_TRANS.COUNTRY_ID=COUNTRIES.COUNTRY_ID "); 
     query.append(" WHERE COUNTRIES_TRANS.LANGUAGE_ID = 1 "); 
     int counter = 1; 
     try { 
      DataBaseConnection DataBaseConnection = new DataBaseConnection(); 
      Connection con = DataBaseConnection.GetConnection(); 
      preparedStatement = con.prepareStatement(new String(query)); 

      resultSet = preparedStatement.executeQuery(); 

      while (resultSet.next()) { 
       CountriesBean = new CountriesBean(); 

       CountriesBean.setCOUNTRY_ID(resultSet.getInt("COUNTRY_ID")); 
       CountriesBean.setCOUNTRY_NAME(resultSet.getString("COUNTRY_TRANS_NAME")); 
       CountriesBean.setDEFAULT_CURRENCY_ID(resultSet.getInt("DEFAULT_CURRENCY_ID")); 
       CountriesBean.setDEFAULT_LANGUAGE_ID(resultSet.getInt("DEFAULT_LANGUAGE_ID")); 
       CountriesList.add(CountriesBean); 
      } 
      con.close(); 
     } catch (SQLException sqlException) { 
      CountriesList = null; 
      System.out.println("getWeddingType : " + sqlException.getMessage()); 
     } catch (NamingException ex) { 
      Logger.getLogger(CountriesFacadeREST.class.getName()).log(Level.SEVERE, null, ex); 
     } finally { 
      query = null; 
      try { 
       if (resultSet != null) { 
        resultSet.close(); 
       } 
       if (preparedStatement != null) { 
        preparedStatement.close(); 
       } 
      } catch (Exception exception) { 

      } 
     } 

     return CountriesList; 
    } 
} 
0

я не могу проверить вашу проблему без кода.

См основной пример с ожиданием:

public class Customer { 
    String fullName; 
    String email; 

    public String getFullName() { 
    return fullName; 
    } 

    public void setFullName(String fullName) { 
    this.fullName = fullName; 
    } 

    public String getEmail() { 
    return email; 
    } 

    public void setEmail(String email) { 
    this.email = email; 
    } 

    @Override 
    public String toString() { 
    return "Customer{" + 
     "fullName='" + fullName + '\'' + 
     ", email='" + email + '\'' + 
     '}'; 
    } 
} 

..

@Path("/services") 
public class MaisonService { 

    @GET 
    @Path("/test") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Customer getSampleCustomer() { 
     Customer sampleCustomer = new Customer(); 
     sampleCustomer.setFullName("Trinh Toan Trung"); 
     sampleCustomer.setEmail("[email protected]"); 
     return sampleCustomer; 
    } 
.. 

Выход:

{ "электронная почта": "[email protected]" , "fullName": "Trinh Toan Trung"}

0

Есть много простых способов сделать это, следуя является самым простейшим, как вы можете получить ответ, как ваш POJO или DTO CLAS

MyResponse О.Б. = новый ObjectMapper(). ReadValue (jsonString, MyResponse.class) ;