JSON--List 컬렉션을 JSON 객체로 변환하는 상세 정보
List<Article> al = articleMng.find(f);
System.out.println(al.size());
HttpServletResponse hsr = ServletActionContext.getResponse();
if(null == al){
return ;
}
for(Article a : al){
System.out.println(a.getId()+a.getDescription()+a.getTitle());
}
JSONArray json = new JSONArray();
for(Article a : al){
JSONObject jo = new JSONObject();
jo.put("id", a.getId());
jo.put("title", a.getTitle());
jo.put("desc", a.getDescription());
json.put(jo);
}
try {
System.out.println(json.toString());
hsr.setCharacterEncoding("UTF-8");
hsr.getWriter().write(json.toString());
} catch (IOException e) {
e.printStackTrace();
}
상기 코드 JSON Array는 도입된 org입니다.json.JSONARray 패키지그물로sf.json이 JSON Array를 포괄하는 정적 방법:from Object(list) 이것은 인터넷에서 대부분 이 방법으로 JSON을 빠르게 변환하지만 Hibernate 등급 연결 조작과 관련된 대상에 대해 이 방법은 오류를 보고합니다. 맵 파일의 등급 연결 설정을 제거하면 됩니다.
또한list에 대한 요구는 그 중의 요소가 문자열이나 대상이라는 것이다. 그렇지 않으면 JSON은 당신이 원하는 데이터가 무엇인지 모른다.
<many-to-one name="cmsent" column="comment_tid" class="com.fcms.cms.entity.CmsComment"
not-null="false" cascade="delete">
그러나 등급 연결 조작은 어쨌든 존재해야 한다. 그렇지 않으면 이후에 데이터가 군더더기 되고 여분이 생길 것이다.해결 방법은 JSONARray subMsgs = JSONArray입니다.fromObject(object, config);
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object arg0, String arg1, Object arg2) {
if (arg1.equals("article") ||arg1.equals("fans")) {
return true;
} else {
return false;
}
}
});
설명: 연결된 대상을 만났을 때 자동으로 필터링하고 연결된 대상을 실행하지 않는 필터링 작용을 제공합니다.여기에 hibernate의 설정 관계 매핑 코드를 붙여서 이해를 돕습니다.
<!-- -->
<many-to-one name="article" class="com.fcms.nubb.article" column="article_id"/>
<!-- -->
<set name="subMessages" table="sub_message" inverse="true" cascade="all" lazy="false" order-by="date asc">
<key column="theme_id" />
<one-to-many class="bbs.po.SubMessage" />
</set>
요약:1. JSONArray subMsgs = JSONArray.fromObject(subMessages, config);그 중에서 config는 선택할 수 있습니다. 위의 상황이 발생하면 config 파라미터를 설정할 수 있습니다. 위의 수요가 없으면fromObject(obj) 방법을 사용할 수 있습니다. 이것은 표준 json 대상 형식의 데이터를 변환합니다. 다음과 같습니다.
{["attr", "content", ...}, ...]}
2. JSONObject jTmsg = JSONObject.fromObject(themeMessage, config);이것은 표준적인 포조나 맵 대상을 해석하는 데 전문적으로 사용되는 것이다. 포조 대상의 형식은 말할 것도 없고, 맵의 형식은 이렇다. {"str", "str"}.
---------------------------------------------------------------------------------------------
JSON Array랑 JSON 하기 전에 토할 것 같아!!!
bean
package com.nubb.bean;
import java.io.Serializable;
public class Person implements Serializable{
private static final long serialVersionUID = 1L;
private String name;
private int age;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
JsonUtil
package com.nubb.test;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.nubb.bean.Person;
public class JSONSerializer {
private static final String DEFAULT_CHARSET_NAME = "UTF-8";
public static <T> String serialize(T object) {
return JSON.toJSONString(object);
}
public static <T> T deserialize(String string, Class<T> clz) {
return JSON.parseObject(string, clz);
}
public static <T> T load(Path path, Class<T> clz) throws IOException {
return deserialize(
new String(Files.readAllBytes(path), DEFAULT_CHARSET_NAME), clz);
}
public static <T> void save(Path path, T object) throws IOException {
if (Files.notExists(path.getParent())) {
Files.createDirectories(path.getParent());
}
Files.write(path,
serialize(object).getBytes(DEFAULT_CHARSET_NAME),
StandardOpenOption.WRITE,
StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING);
}
public static void main(String[] args) {
Person person1 = new Person();
person1.setAddress("address");
person1.setAge(11);
person1.setName("amao");
Person person2 = new Person();
person2.setAddress("address");
person2.setAge(11);
person2.setName("amao");
List<Person> lp = new ArrayList<Person>();
lp.add(person1);
lp.add(person2);
System.out.println(serialize(lp));
}
}
출력:
[{"address":"address","age":11,"name":"amao"},{"address":"address","age":11,"name":"amao"}]
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[SwiftUI]List화한 CoreData를 가로 스와이프로 행 삭제하는 방법상당히 조사했지만 일본어 자료가 없었기 때문에 비망록으로 남겨 둔다. 아래와 같이 CoreData를 참조한 리스트를 가로 스와이프로 삭제하고 싶었다. UI 요소뿐만 아니라 원본 데이터 당 삭제합니다. 잘 다른 페이지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.