拍拍区域js文件网址:[url]http://static.paipaiimg.com/js/regiondata.js?t=20091111[/url]
树形结构网址:[url]http://pop.paipai.com/resources/address.html[/url]
需取出js文件中的Json数据,不能直接使用js文件。
代码如下:
树形结构网址:[url]http://pop.paipai.com/resources/address.html[/url]
需取出js文件中的Json数据,不能直接使用js文件。
代码如下:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import com.winxuan.paipai.domain.area.PaipaiArea;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* 将拍拍Json格式的js文件转换为insert...格式的sql文件
*
* @author qiaoyao
* @version 1.0,2010-6-13
*/
public class PaipaiAreaTest {
private static final String insertNoParent = "insert into paipai_area(id,name,available) values(%d,'%s',1);";
private static final String insertWidthParent = "insert into paipai_area(id,name,available,parent) values(%d,'%s',1,%d);";
private static BufferedWriter output;
public static void main(String[] args) throws IOException {
output = new BufferedWriter(new FileWriter("d:/sql_area.txt"));
getArea(JsonConvertTestUtils.JSON_AREA, null);
output.close();
System.out.println("生成d:/sql_area.txt成功!!!");
}
@SuppressWarnings("unchecked")
public static void getArea(String str, PaipaiArea parent) {
JSONObject jsonCountry = JSONObject.fromObject(str);
Iterator<?> iteratorProvince = jsonCountry.entrySet().iterator();
PaipaiArea area;
while (iteratorProvince.hasNext()) {
area = new PaipaiArea();
Map.Entry<String, JSONArray> mapProvince = (Map.Entry<String, JSONArray>) iteratorProvince
.next();
area.setParent(parent);
area.setId(new Integer(mapProvince.getKey()));
JSONArray jsonArray = mapProvince.getValue();
if (jsonArray.size() > 0) {
area.setName(jsonArray.get(0).toString());
printInsertSql(area);
if (jsonArray.size() > 2) {
getArea(jsonArray.get(2).toString(), area);
}
}
}
}
public static void printInsertSql(PaipaiArea area) {
String result = "";
if (area.getParent() != null) {
result = String.format(insertWidthParent, area.getId(), area
.getName(), area.getParent().getId());
} else {
result = String
.format(insertNoParent, area.getId(), area.getName());
}
try {
output.write(result + "\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
/**
* Json格式数据常量类
*
* @author qiaoyao
* @version 1.0,2010-6-2
*/
public class JsonConvertTestUtils {
public static String JSON_ORDER_LIST = "";
public static String JSON_ORDER = "";
public static String JSON_ITEM_LIST = "";
public static String JSON_ITEM = "";
public static String JSON_AREA = "";
static {
try {
String currentPath = "d:/temp";
JSON_ORDER_LIST = readerFile(currentPath + "/orderList.txt");
JSON_ORDER = readerFile(currentPath + "/order.txt");
JSON_ITEM = readerFile(currentPath + "/item.txt");
JSON_AREA = readerFile(currentPath + "/area.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
public static String readerFile(String path) throws IOException {
BufferedReader reader = null;
StringBuffer sb = new StringBuffer();
reader = new BufferedReader(new InputStreamReader(new FileInputStream(
path), Charset.forName("gbk")));
String tempString = "";
while ((tempString = reader.readLine()) != null) {
sb.append(tempString);
}
return sb.toString();
}
}
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import com.xhbs.b2c.domain.codetable.Area;
/**
* Paipai区域对象
*
* @author qiaoyao
* @version 1.0,2010-6-13
*/
@Entity
@Table(name = "paipai_area")
public class PaipaiArea {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "description")
private String description;
@Column(name = "available")
private boolean available;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent")
private PaipaiArea parent;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", fetch = FetchType.LAZY, targetEntity = PaipaiArea.class)
private Set<PaipaiArea> children;
@ManyToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST }, targetEntity = Area.class)
@JoinTable(name = "paipai_areamapping", joinColumns = { @JoinColumn(name = "_paipaiarea") }, inverseJoinColumns = { @JoinColumn(name = "_b2carea") })
private Area area;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public boolean isAvailable() {
return available;
}
public void setAvailable(boolean available) {
this.available = available;
}
public PaipaiArea getParent() {
return parent;
}
public void setParent(PaipaiArea parent) {
this.parent = parent;
}
public Set<PaipaiArea> getChildren() {
return children;
}
public void setChildren(Set<PaipaiArea> children) {
this.children = children;
}
public Area getArea() {
return area;
}
public void setArea(Area area) {
this.area = area;
}
}