首页 > 解决方案 > 将 java 脚本代码转换为 java 类

问题描述

我是 javascript 新手,想将 javascript 模型转换为 java 类

这是我的商务应用程序。我想为我的客户端(Android 应用程序)生成和存储一个购物车。

javascript代码

module.exports = function Cart(oldCrart) {
  this.items = oldCrart.items || {}; //if oldcart doesnot exist use empity as default
  this.totalQty = oldCrart.totalQty || 0;
  this.totalPrice = oldCrart.totalPrice || 0;

  this.add = function(item, id) {
    var storedItem = this.items[id];
    if (!storedItem) {
      storedItem = this.items[id] = { item: item, qty: 0, price: 0 };
    }
    storedItem.qty++;
    storedItem.price = storedItem.item.price * storedItem.qty;
    this.totalQty++;
    this.totalPrice += storedItem.item.price * 1;
  };
  this.generateArray = function() {
    var arr = [];
    for (var id in this.items) {
      arr.push(this.items[id]);
    }
    return arr;
  };
};

这是我的购物车.java

public class Cart {

    List<Items> items;
    int totalQty,qty=0;
    double totalPrice, price;


    public Cart(List<String> items, int totalQty, double totalPrice) {
        this.items = items;
        this.totalQty = totalQty;
        this.totalPrice = totalPrice;
    }

   public void add(List<String> items, String id){
        String storedItem = this.items[id];

        if(!storedItem){
            storedItem=this.items[id;

        }
        qty++;
        price= items.price * qty;
        totalQty++;
        totalPrice=item.price * 1;


   }


}

这是由后端生成的,我希望客户端生成等效的输出。谢谢

{"items":{"5c921268bccaaebc228cee58":{"item":{
    "_id":"5c921268bccaaebc228cee58","pname":"phone case","price":"123",
    "image":"img.jpg",
    "stokeamount":20,
    "description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit,
     sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
      ","__v":0,
      "tags":[],
      "rating":{"five":0,"four":0,"three":0,"two":0,"one":0,"averge":0},
      "department":{"department":"electronics","new":true,"colors":[]},
      "comments":[],"view":"80",
      "manufacture":
      [{"manufacturer":"adulis","_id":"5c921268bccaaebc228cee59"}]},
      "qty":1,"price":123}},"totalQty":1,"totalPrice":123}

标签: javascriptandroidnode.js

解决方案


您可以为此使用 Gson 库。

将此添加到gradle:implementation "com.google.code.gson:gson:2.8.2"

然后创建新的 Gson 实例:Gson mGson = new Gson();

现在来自服务器的数据是 Json 格式的字符串,因此您可以生成这样的自定义类:Cart cart = mGson.fromJson(cartStringJson, Cart.class);

确保您的 java 类中的所有属性名称与您的 javascript 数据中的所有属性名称相同,否则它们将被省略,属性类型也必须正确。


推荐阅读