我从API获取json数据作为String但我想将其存储在DB中并将其用作整数。例如,我得到A = 15K或15M,但我想要15000。
这是我的班级
public class JsonRestApi {
public JsonRestApi() {
try {
String Response = "{\"Youtube Data\":{\"Views\":\"15K\"}}";
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(Response);
JSONObject jsonObject = (JSONObject) obj;
JSONObject jsonObject3 = (JSONObject)jsonObject.get("Youtube Data");
String yviews = (String)jsonObject3.get("Views");
System.out.println(yviews);
}
}
}
}
输出 - 15K
但我希望输出为15000 。 但是我不想改变我的Json数据。 我应该怎样做到这一点?
答案 0 :(得分:5)
用适当数量的零替换K,M等。
String yviews = (String)jsonObject3.get("Views");
yviews = yviews.replace( "K", "000").replace( "M", "000000");
System.out.println(yviews);
编辑:如果您的视图数量可以包含浮点数,则可以使用以下代码:
String[][] conversionMatrix = {{"K", "1000"}, {"M", "1000000"}, {"B", "1000000000"}};
for( int i = 0; i < conversionMatrix.length; i++)
{
if( yviews.endsWith( conversionMatrix[i][0]))
{
BigDecimal temp = new BigDecimal( yviews.substring( 0,
yviews.indexOf( conversionMatrix[i][0])));
temp = temp.multiply( new BigDecimal( conversionMatrix[i][1]));
yviews = temp.toBigInteger().toString();
break;
}
}
System.out.println( yviews);