Java Can';不能从JSON解析

Java Can';不能从JSON解析,java,android,gson,Java,Android,Gson,我仔细查看了一遍,试图让androidstudio识别来自json的方法,但运气不好。我的项目结构中有com.google.code.gson:gson:2.6.2作为我的gson依赖项。到目前为止,我所做的一切仍然不允许编译这一行: LookupRate cuRate = gson.fromJson(gson, LookupRate.class); 我尝试了以下导入,但每次都没有尽全力清理我的项目,只是为了刷新一下。进口: import java.lang.reflect.Type; imp

我仔细查看了一遍,试图让androidstudio识别来自json的
方法,但运气不好。我的项目结构中有
com.google.code.gson:gson:2.6.2
作为我的
gson
依赖项。到目前为止,我所做的一切仍然不允许编译这一行:

LookupRate cuRate = gson.fromJson(gson, LookupRate.class);
我尝试了以下导入,但每次都没有尽全力清理我的项目,只是为了刷新一下。进口:

import java.lang.reflect.Type;
import com.google.gson.JsonObject;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.stream.JsonReader;
import com.google.gson.reflect.TypeToken;
我应该试试别的吗?我看了一下这两个参数中的每一个都应该依赖于什么

下面是gson变量的一些上下文,因为我意识到,当我命名这些东西时,已经是深夜了。在
doInBackground()
方法中,我声明了一个变量
gSB
,如下所示:

StringBuilder gSB = new StringBuilder();
connectStat = (HttpURLConnection) params[0].openConnection();
InputStream inputer = new BufferedInputStream(connectStat.getInputStream());
scanner = new Scanner(inputer);
while (scanner.hasNext()) gSB.append(scanner.nextLine());
Log.v(checkRSP, "Response(" + connectStat.getResponseCode() + "):" +
                connectStat.getResponseMessage());
try
语句中,它是这样分配的:

StringBuilder gSB = new StringBuilder();
connectStat = (HttpURLConnection) params[0].openConnection();
InputStream inputer = new BufferedInputStream(connectStat.getInputStream());
scanner = new Scanner(inputer);
while (scanner.hasNext()) gSB.append(scanner.nextLine());
Log.v(checkRSP, "Response(" + connectStat.getResponseCode() + "):" +
                connectStat.getResponseMessage());
在我的
try
catch
最后
之后,所有异常都得到了正确处理。变量
gson
的赋值如下:

String gson = gSB.toString();
接下来是无法解析的
fromJson
行,但我将重复它以消除业余描述可能造成的任何混淆:

LookupRate cuRate = gson.fromJson(gson, LookupRate.class);

第一个参数
gson
无效

其中一个重载(我想您正在尝试使用)采用包含JSON内容的
字符串

因此,您的代码应该是:

//assume your JSON content is stored in variable name `myJsonStr`
LookupRate cuRate = gson.fromJson(myJsonStr, LookupRate.class);

您只需填写
myJsonStr
表单,无论您在哪里获得数据(web服务、数据库、本地文件等)

有许多fromJson重载函数,但没有人将gson作为参数。它可能与语法
LookupRate cuRate=gson.fromJson(gson,LookupRate.class)混淆
您需要使用
LookupRate cuRate=gson.fromJson(reader,LookupRate.class)gson.fromJson(yourjonstring,LookupRate.class);我可能混淆了语法,但我添加了更多的代码以提供更多的上下文
Gson Gson
因此重命名其中一个让我为代码添加一点上下文,看看您是否仍然认为是这样。@AustinMauldin yes您正在使用带有
字符串的字符串作为第一个参数