个性化阅读
专注于IT技术分析

GWT JSON用法

点击下载

本文概述

JSON(JavaScript对象表示法)是一种与语言无关的数据格式。它与XML类似, 因为XML使用标签JSON使用JavaScript的对象-语言表示法。

实作

创建Stock Exchange的JSON数据源示例:

我们已经实现了股票价格类别并刷新监视列表方法为:

/**
   * Generate random stock prices.
   */
  private void refreshWatchList() {
    final double MAX_PRICE = 100.0; // $100.00
    final double MAX_PRICE_CHANGE = 0.02; // +/- 2%

    StockPrice[] prices = new StockPrice[stocks.size()];
    for (int i = 0; i < stocks.size(); i++) {
      double price = Random.nextDouble() * MAX_PRICE;
      double change = price * MAX_PRICE_CHANGE
          * (Random.nextDouble() * 2.0 - 1.0);

      prices[i] = new StockPrice(stocks.get(i), price, change);
    }

    updateTable(prices);
  }

创建Servlet

在此, 我们为JSON格式的股票报价创建一个servlet文件。以下是创建servlet的步骤:

1)创建一个Servlet

  1. 在程序包资源管理器中, 选择客户端程序包:com.google.gwt.sample.stockwatcher.client
  2. 在Eclipse中, 打开“新建Java类”向导(“文件”>“新建”>“类”)。
GWT JSON1

2)在Package下, 将名称从.client更改为.server

  1. 在名称下, 输入JsonStockData。
  2. Eclipse将为服务器端代码创建一个包, 并为JsonStockData类创建一个存根。
GWT JSON2

3)用以下代码替换存根:

package com.google.gwt.sample.stockexchange.server;

   import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

    import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

    public class JsonStockData extends HttpServlet {

      private static final double MAX_PRICE = 100.0; // $100.00
  private static final double MAX_PRICE_CHANGE = 0.02; // +/- 2%

      @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {

        Random rnd = new Random();

        PrintWriter out = resp.getWriter();
    out.println('[');
    String[] stockSymbols = req.getParameter("q").split(" ");
    boolean firstSymbol = true;
    for (String stockSymbol : stockSymbols) {

          double price = rnd.nextDouble() * MAX_PRICE;
      double change = price * MAX_PRICE_CHANGE * (rnd.nextDouble() * 2f - 1f);

          if (firstSymbol) {
        firstSymbol = false;
      } else {
        out.println("  , ");
      }
      out.println("  {");
      out.print("    \"symbol\": \"");
      out.print(stockSymbol);
      out.println("\", ");
      out.print("    \"price\": ");
      out.print(price);
      out.println(', ');
      out.print("    \"change\": ");
      out.println(change);
      out.println("  }");
    }
    out.println(']');
    out.flush();
  }

    }

包括服务器端代码

GWT由内部构建servlet容器Jetty组成, 该容器托管以JSON格式生成库存数据的servlet。在GWT中包含服务器端代码的步骤是:

  1. 在StockWatcher / war / WEB-INF / web.xml下编辑以下代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

    <web-app>

      <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>StockExchange.html</welcome-file>
  </welcome-file-list>

      <!-- Servlets -->
 <servlet>
    <servlet-name>jsonStockData</servlet-name>
    <servlet-class>com.google.gwt.sample.stockexchange.server.JsonStockData</servlet-class>
  </servlet>

      <servlet-mapping>
    <servlet-name>jsonStockData</servlet-name>
    <url-pattern>/stockexchange/stockPrices</url-pattern>
  </servlet-mapping>

    </web-app>

检索JSON数据

在开发模式下调试StockExchange。

  1. 此时, 库存数据仍来自客户端代码。

测试股票报价服务器。

  1. 确保开发模式代码服务器正在运行, 并将股票代码传递到Servlet URL http:// localhost:8888 / stockexchange / stockPrices?q = ABC + DEF

servlet生成以JSON格式编码的模拟股票数据数组。

GWT JSON3
赞(0)
未经允许不得转载:srcmini » GWT JSON用法

评论 抢沙发

评论前必须登录!