import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class FreemarkerTest {
/**
* 循环List 必须要有as别名(例如as name)
* 判断还有下一项 别名_has_next
* 条件判断 大于gt,小于lt
* 日期格式化 date?string('yyyy-MM-dd')
*/
@Test
public void testFreemark() {
String template = "你好<#list nameList as name>${name}<#if name_has_next>、</#if></#list>,<#if age gt 60>年级大</#if>今天是${date?string('yyyy-MM-dd')}";
List<String> nameList=new ArrayList<String>();
nameList.add("张三");
nameList.add("李四");
Map m = new HashMap();
m.put("nameList",nameList);
m.put("age", 59);
m.put("date", new Date());
System.out.println(freemarkerProcess(m, template)); //"你好管理员,今天是2013-09-11"
}
public static String freemarkerProcess(Map input, String templateStr) {
StringTemplateLoader stringLoader = new StringTemplateLoader();
String template = "content";
stringLoader.putTemplate(template, templateStr);
Configuration cfg = new Configuration();
cfg.setTemplateLoader(stringLoader);
try {
Template templateCon = cfg.getTemplate(template);
StringWriter writer = new StringWriter();
templateCon.process(input, writer);
return writer.toString();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
return null;
}
@Test
public void testJsonPase() {
JSONArray jo=JSONArray.parseArray("[{\"daily_average\": \"500\",\"in_amount\": \"40000\",\"in_count\": \"35\",\"out_amount\": \"4\",\"out_count\": \"35\",\"money_source\": [{ \"ranking\": \"1\", \"name\": \"同名户\", \"amount\": \"585281\"}, { \"ranking\": \"2\", \"name\": \"XXXX\", \"amount\": \"58000\"}],\"money_target\": [{ \"ranking\": \"1\", \"name\": \"同名户\", \"amount\": \"58354523\"}, { \"ranking\": \"2\", \"name\": \"XXXX\", \"amount\": \"580245800\"}],\"money_target_area\": [{ \"ranking\": \"1\", \"area\": \"成都市\", \"amount\": \"582389\"}, { \"ranking\": \"2\", \"target_area\": \"绵阳市\", \"amount\": \"580698\"}],\"trade_out_remark\": [{ \"ranking\": \"1\", \"remark\": \"还贷\", \"amount\": \"4500.36\"}, { \"ranking\": \"2\", \"remark\": \"工资\", \"amount\": \"3500\"}],\"ip_address\": [{ \"ranking\": \"1\", \"ip\": \"10.10.10.1\", \"count\": \"32\"}, { \"ranking\": \"2\", \"ip\": \"10.10.10.2\", \"count\": \"40\"}],\"account_way\": [{ \"ranking\": \"1\", \"way\": \"现金\", \"amount\": \"5000\", \"total_amount\": \"12000\"}, { \"ranking\": \"2\", \"ip\": \"手机银行\", \"amount\": \"7000\", \"total_amount\": \"12000\"}]}]");
Object money_source=((JSONObject)jo.get(0)).get("money_source");
if(money_source instanceof JSONArray) {
JSONArray ja=(JSONArray)money_source;
JSONObject jo1=(JSONObject)ja.get(0);
System.out.println(jo1.getString("name"));
}
}
@Test
public void testSplit() {
String javaParameter="java.lang.String|_|java.lang.Integer";
String[] paraEntityArr=javaParameter.split("\\|_\\|");
for (String string : paraEntityArr) {
System.out.println(string);
}
}
@Test
public void testZhuanyiDian() {
String fieldName="money_source.name";
String[] jsonKeys=fieldName.split("\\.");
for (String string : jsonKeys) {
System.out.println(string);
}
}
}