[英]String manipulation and formatting issue (parsed string from JSON needs manipulation /w JAVA - java classes included)
回到我的Java JSON示例。 我希望能够执行以下操作:(在问我的问题之前,将介绍这个问题)我得到了以下JSON文件:
x
为了将所有这些信息解析为Java,需要两个类:Manager + main方法:
经理班:
x
和主要方法:
x
另外,还需要将org.json库导入到项目中。 组织json jar
执行后,将给出以下输出:
Chris - 43 - Retail - HLF
John - 36 - Sales - FLS
Mark - 48 - TechSupport - HFO
其中H,L,F,S和O是以下个性类型:H-勤奋的L-忠诚的F-有趣的S-严重的O-外向
我的问题是:我如何能够操纵每个“类型”字符串(HLF,FLS和HFO)以获取如下所示的输出:
Chris - hardworking - loyal - funny
John - funny - loyal - serious
Mark - hardworking - funny - outgoing
我不完全确定我的问题与字符串操作有关,我对此事进行了一些搜索,但我相信确实如此。 (虽然不确定)
任何解决方案/想法/建议将不胜感激。
也许重写Manager类中的toString()方法,并使用charAt()方法,该方法在给定位置返回char。
public class Manager
{
//...
@Override
public String toString()
{
String result = "";
if(type != null)
{
for(int i=0;i<type.length();++i)
{
char a = type.charAt(i);
if(a == 'H')
{
result += " Hardworking";
}
//..
}
}
return this.name + result;
}
}
并且比您只能:
Manager manager = new Manager();
//...code parsing from json
System.out.println(manager);
编辑:您还可以将您的个性类型保存在最终字符中:
private final static char HARDWORKING_TYPE = 'H';
而不是使用它插入的文字:
if(a == HARDWORKING_TYPE)
更好的做法。 您也可以使用枚举类型。
编辑2:
它与主要问题无关,但是您也可以不使用伪“纯”对象而从json进行解析,而是使用注释来映射对象。 在这种情况下,您必须更改JSON库。 例:
http://software.danielwatrous.com/restful-java-servlet-serializing-tofrom-json-with-jackson/
您可以将Manager
类的setType(...)
方法更改为以下形式:
public void setType(String type) {
type = type.replace("H", "hardworking ");
type = type.replace("L", "loyal ");
type = type.replace("F", "funny ");
type = type.replace("S", "serious ");
type = type.replace("O", "outgoing ");
this.type = type;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.