package com.alibaba.json.bvt.bug; import java.math.BigDecimal; import java.util.Currency; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import junit.framework.TestCase; public class Bug_for_issue_349 extends TestCase { public void test_for_issue() throws Exception { Money money = new Money(); money.currency = Currency.getInstance("CNY"); money.amount = new BigDecimal("10.03"); String json = JSON.toJSONString(money); Money moneyBack = JSON.parseObject(json, Money.class); Assert.assertEquals(money.currency, moneyBack.currency); Assert.assertEquals(money.amount, moneyBack.amount); JSONObject jsonObject = JSON.parseObject(json); Money moneyCast = JSON.toJavaObject(jsonObject, Money.class); Assert.assertEquals(money.currency, moneyCast.currency); Assert.assertEquals(money.amount, moneyCast.amount); } public static class Money { public Currency currency; public BigDecimal amount; @Override public String toString() { return "Money{currency=" + currency + ", amount=" + amount + '}'; } } }