[英]I can not serve a JSON response with Play framework 2.1
我正在嘗試將json導出到Android設備。 我已經使用Java像Play一樣做到了! doc: http : //www.playframework.com/documentation/2.1.1/JavaJsonRequests,但是它不起作用。 我敢肯定這不是一個Android問題,因為我對php return json_encode($some)
做了同樣的事情,並且效果很好。 我能做什么?
package controllers;
import java.util.List;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.ObjectNode;
import models.Restaurante;
import play.libs.Json;
import play.mvc.*;
public class Servicio extends Controller {
public static Result coordenadas() {
//System.out.println("XXXxxXX");
ObjectNode rpta = Json.newObject();
ArrayNode restaurantes = rpta.arrayNode();
List <Restaurante> rests = Restaurante.allRests();
Restaurante rest;
for(int i=0; i<rests.size(); i++) {
rest = rests.get(i);
ObjectNode restJs = Json.newObject();
restJs.put("nombre", rest.nombre);
restJs.put("lon", rest.longitud);
restJs.put("lat", rest.latitud);
restaurantes.add(restJs);
}
ObjectNode response = Json.newObject();
response.put("restaurantes", restaurantes);
return ok(response);
}
}
我是從db獲得的,瀏覽器向我顯示了這一點:
{
"restaurantes":[
{
"nombre":"ODONTOLOGIA",
"lon":-12.054695,
"lat":-77.085268
},
{
"nombre":"LETRAS",
"lon":-12.057444,
"lat":-77.081856
},
{
"nombre":"FISICA",
"lon":-12.060279,
"lat":-77.081594
},
{
"nombre":"COMEDOR",
"lon":-12.059332,
"lat":-77.083104
},
{
"nombre":"QUIMICA",
"lon":-12.06009,
"lat":-77.083804
},
{
"nombre":"CIBERCAFE",
"lon":-12.059857,
"lat":-77.084563
},
{
"nombre":"GEOGRAFICA",
"lon":-12.05507,
"lat":-77.086127
},
{
"nombre":"MECANICA",
"lon":-12.055854,
"lat":-77.081816
},
{
"nombre":"ELECTRONICA",
"lon":-12.056347,
"lat":-77.082055
},
{
"nombre":"ECONOMIA",
"lon":-12.058123,
"lat":-77.080639
},
{
"nombre":"MINAS",
"lon":-12.05199,
"lat":-77.087165
},
{
"nombre":"ADMINISTRACION",
"lon":-12.05789,
"lat":-77.081602
},
{
"nombre":"Nuevo restaurante",
"lon":-70.23123,
"lat":-12.31234
}
]
}
嘗試僅返回餐廳作為ok屬性:
return ok(restaurantes);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.