Java 怎么将属性(Property)列表转为JSON

2019年7月29日20:13:41Java 怎么将属性(Property)列表转为JSON已关闭评论 646 1150字阅读3分50秒

1.简介

Java 怎么将属性(Property)列表转为JSON?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */

 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;

public class Main{
    public static String propertyListToJSON(ArrayList<Property> list) {
        StringBuilder ret = new StringBuilder();
        boolean first = true;

        ret.append("{ ");

        if (list != null && list.size() > 0) {
            Iterator<Property> iter = list.iterator();
            while (iter.hasNext()) {
                Property prop = iter.next();

                if (!first) {
                    ret.append(", ");
                }
                ret.append("\"" + JSONUtils.escapeForJSON(prop.getName())
                        + "\":");
                ret.append("\"" + JSONUtils.escapeForJSON(prop.getValue())
                        + "\"");
                first = false;
            }
        }

        ret.append("}");

        return ret.toString();
    }
    
    public static String escapeForJSON(String str) {

        StringBuilder ret = new StringBuilder();
        int idx = 0;

        if (str == null) {
            return null;
        }

        while (idx < str.length()) {
            switch (str.charAt(idx)) {
            case '"':
                ret.append("\\\"");
                break;

            case '\\':
                ret.append("\\\\");
                break;

            case '/':
                ret.append("\\/");
                break;

            case '\b':
                ret.append("\\b");
                break;

            case '\f':
                ret.append("\\f");
                break;

            case '\n':
                ret.append("\\n");
                break;

            case '\r':
                ret.append("\\r");
                break;

            case '\t':
                ret.append("\\t");
                break;

            default:
                ret.append(str.charAt(idx));
                break;

            }

            idx++;
        }

        return ret.toString();
    }
}

 
继续阅读
编程十万个怎么办