首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google charts JSON无效

Google charts JSON无效
EN

Stack Overflow用户
提问于 2013-06-27 17:04:18
回答 2查看 867关注 0票数 3

下面的代码为Google图表返回json

代码语言:javascript
复制
public static DataTable generateDataTable(){
        // Create a data table,
        DataTable data = new DataTable();
        ArrayList cd = new ArrayList();
        cd.add(new ColumnDescription("name", ValueType.TEXT, "Animal name"));
        cd.add(new ColumnDescription("link", ValueType.TEXT, "Link to wikipedia"));
        cd.add(new ColumnDescription("population", ValueType.NUMBER, "Population size"));
        cd.add(new ColumnDescription("vegeterian", ValueType.BOOLEAN, "Vegetarian?"));

        data.addColumns(cd);

        // Fill the data table.
        try {
          data.addRowFromValues("Aye-aye", "http://en.wikipedia.org/wiki/Aye-aye", 100, true);
          data.addRowFromValues("Sloth", "http://en.wikipedia.org/wiki/Sloth", 300, true);
          data.addRowFromValues("Leopard", "http://en.wikipedia.org/wiki/Leopard", 50, false);
          data.addRowFromValues("Tiger", "http://en.wikipedia.org/wiki/Tiger", 80, false);
        } catch (TypeMismatchException e) {
          System.out.println("Invalid type!");
        }


        return data;
}

public static void main(String []args){
    String json = JsonRenderer.renderDataTable(generateDataTable(), false, false).toString();
    System.out.println(json);
}

但是返回的JSON

代码语言:javascript
复制
{cols:[{id:'name',label:'Animal name',type:'string',pattern:''},{id:'link',label:'Link to wikipedia',type:'string',pattern:''},{id:'population',label:'Population size',type:'number',pattern:''},{id:'vegeterian',label:'Vegetarian?',type:'boolean',pattern:''}]}

粘贴到http://jsonlint.com/中时无效

另外,返回的json {id:'name',label:'Animal name',type:'string',**pattern:''**}中显示的模式值是什么

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-28 03:27:20

谢谢你们的帮助。

我用Jackson解决了这个问题,它可以引用未引用的关键字

代码语言:javascript
复制
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;  

JsonNode root = null;
String json = JsonRenderer.renderDataTable(generateDataTable(), true, false).toString();

        try{
            JsonParser parser = new JsonFactory().createJsonParser(json)
                .enable(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES)
                .enable(JsonParser.Feature.ALLOW_SINGLE_QUOTES);
                 root = new ObjectMapper().readTree(parser);
            }catch(Exception e){
                logger.error(e.getMessage());
            }

        response.getWriter().println(root.toString());
票数 2
EN

Stack Overflow用户

发布于 2013-06-27 17:25:31

Google发送给您的是JavaScript object而不是JSON

您需要找出一种将JavaScript object stringfyJSON的方法。

看看this问题的答案。这可能会对你有帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17338978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档