gpt4 book ai didi

Java : Json String with ANSI escape code to Object

转载 作者:行者123 更新时间:2023-12-02 01:18:28 25 4
gpt4 key购买 nike

我有以下 Java 字符串,

String ansiStr = "{\"traceback\":[\"\\u001b[1;36m  File \\u001b[1;32m\\\"MyFile\\\"\\u001b[1;36m, line \\u001b[1;32m1\\u001b[0m\\n\\u001b[1;33m    codedata\\u001b[0m\\n\\u001b[1;37m                         ^\\u001b[0m\\n\\u001b[1;31mSyntax\\u001b[0m\\u001b[1;31m:\\u001b[0m EOF\\n\"],\"ename\":\"Error\",\"evalue\":\"UnExpected\"}";

String 是来自 IPython 内核的回复,看起来像 Json 格式,我尝试使用下面的代码将其解析为对象,

ArrayList list = gson.fromJson(jsonString, ArrayList.class);

我收到以下异常,

Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $

如何将此字符串转换为 JSon 对象?类别/类型应该是什么?我被困住了,因为它有 ANSI 颜色代码和 "[" 符号。

最佳答案

试试这个

try {
JSONObject object=new JSONObject(ansiStr);
TrackBook track = new Gson().fromJson(object.toString(),TrackBook.class);
List<String> trackList=track.getTraceback();
} catch (JSONException e) {
e.printStackTrace();
}

TrackBook.java

public class TrackBook {
@SerializedName("traceback")
@Expose
private List<String> traceback = null;
@SerializedName("ename")
@Expose
private String ename;
@SerializedName("evalue")
@Expose
private String evalue;

public List<String> getTraceback() {
return traceback;
}

public void setTraceback(List<String> traceback) {
this.traceback = traceback;
}

public String getEname() {
return ename;
}

public void setEname(String ename) {
this.ename = ename;
}

public String getEvalue() {
return evalue;
}

public void setEvalue(String evalue) {
this.evalue = evalue;
}
}

关于Java : Json String with ANSI escape code to Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58169273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com