JSON/Java/Android:从字符串反序列化为 ArrayList<Strings>



我正在搜索几个小时来反序列化一个字符串到它以前的形式,一个数组列表。毫无疑问,网上有很多这样的例子。但我尝试的每一个都至少缺少一个对象或命令。所以,没有一个可以实现的方式,他们宣传它。

服务器有以下实现:

for (String string:DBdata)
    {   //put each string in DBdata to a JSON-Object with key=time and value=value
        jSONString.put(string.substring(0, string.indexOf(",")), string.substring(string.indexOf(",")+1,string.indexOf(";")));
    }

DBdata中的每个String都像123234:1234567;(UnixTimeOrIndex:价值;)如果反序列化后的输出是二维的,也可以。

我自己写的:可能不是最有效的解决方案,但它有效。main类中的所有内容都只是组装一个要测试的字符串。

package test;
import java.util.ArrayList;
import net.sf.json.JSONObject;
public class Tst {
public static void main(String[] args) {
        ArrayList<String> versuch=new ArrayList<String>();
        for(int i=1; i<11; i++){       
        String temp = "Time1234"+i+",MeanValue123"+i+";";
        System.out.println(temp);
        versuch.add(temp);
        }
        System.out.println(versuch);
        JSONObject jSONString = new JSONObject();
        for (String string:versuch)
        {   //put each string in DBdata to a JSON-Object with key=time and value=value
            jSONString.put(string.substring(0, string.indexOf(",")), string.substring(string.indexOf(",")+1,string.indexOf(";")));
        }
        String output="data.ID=1234."+jSONString.toString();
        System.out.println(output);
        System.out.println(JSONDeconstruct(output));
    }
    public static ArrayList<String> JSONDeconstruct (String st)
    {
        ArrayList<String> out=new ArrayList<String>();
        int begpos=st.indexOf("{");
        int endpos=st.indexOf("}");
        int index=0;
        String work=st.substring(begpos+1, endpos);
        String replaced=work.replace("","", ",");
        work=replaced.replace("":"", ":");
        replaced=work.replace(""","")+",definedend";
        System.out.println(replaced);
        while (!replaced.equals("definedend"))
        {           
            out.add(replaced.substring(0,replaced.indexOf(":"))+","+replaced.substring(replaced.indexOf(":")+1, replaced.indexOf(","))+";");
            String tempstring=replaced.substring(replaced.indexOf(",")+1);  
            replaced=tempstring;
            index++;
            System.out.println("loop disassembly step"+index+"   "+replaced);
        }

        return out;

    }
}

相关内容

最新更新