如何从 json(url) 解析数据并将数据发送到 url
Posted
技术标签:
【中文标题】如何从 json(url) 解析数据并将数据发送到 url【英文标题】:How to parse data from json(url) and send data to url 【发布时间】:2019-10-21 14:56:37 【问题描述】:我正在尝试将数据发送到解析 json 数据的 url,我想知道如果我们从 myjson.com 创建随机 json 存储,我们是否可以编辑 url 中的 json 数据,或者我们必须维护自己的服务器进行编辑json 数据。在这里我创建了随机 json 存储,我正在从该 url 解析数据,我还想编辑 url 中的数据,这是我无法做到的问题。它不工作。请帮忙??? 这是结构
["name":"pavan","hit":true]
这是 fetchdata 在后台执行的主要活动代码
public class MainActivity extends AppCompatActivity
Button click;
public static TextView data;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
click=(Button)findViewById(R.id.button);
data=(TextView)findViewById(R.id.fetcheddata);
click.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
fetchdata process=new fetchdata();
process.execute();
);
这是 fetchdata 类,用于从 url 获取数据并显示在 mainactivity 的文本视图中
public class fetchdata extends AsyncTask<Void,Void,Void>
String data="";
String dataparsed="";
String singleparsed="";
boolean flag=false;
@Override
protected Void doInBackground(Void... params)
try
URL url=new URL("https://api.myjson.com/bins/1854yb");
HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection();
InputStream inputStream=httpURLConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
String line="";
while (line!=null)
line=bufferedReader.readLine();
data=data+line;
JSONArray JA=new JSONArray(data);
for(int i=0;i<JA.length();i++)
JSONObject JO= (JSONObject) JA.get(i);
singleparsed="Name:"+JO.get("name")+"\n"+"Feed key:"+JO.get("hit");
dataparsed=dataparsed+singleparsed;
catch (MalformedURLException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
catch (JSONException e)
e.printStackTrace();
return null;
@Override
protected void onPostExecute(Void result)
super.onPostExecute(result);
MainActivity.data.setText(this.dataparsed);
JSONObject postData = new JSONObject();
try
postData.put("name","sai");
postData.put("hit", false);
new senddata().execute("https://api.myjson.com/bins/1854yb", postData.toString());
catch (JSONException e)
e.printStackTrace();
这是从正在执行的 fetchdata 的 postexecute 向 url 代码发送数据,并且 url 中没有发生任何事情,请帮助我从 3 天开始处理这个问题
public class senddata extends AsyncTask<String,Void, String>
String data="";
String dataparsed="";
String singleparsed="";
boolean flag=false;
@Override
protected String doInBackground(String... params)
String data = "";
HttpURLConnection httpURLConnection = null;
try
httpURLConnection = (HttpURLConnection) new URL(params[0]).openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
wr.writeBytes("PostData=" + params[1]);
wr.flush();
wr.close();
InputStream in = httpURLConnection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(in);
int inputStreamData = inputStreamReader.read();
while (inputStreamData != -1)
char current = (char) inputStreamData;
inputStreamData = inputStreamReader.read();
data += current;
dataparsed=data;
catch (Exception e)
e.printStackTrace();
finally
if (httpURLConnection != null)
httpURLConnection.disconnect();
return data;
@Override
protected void onPostExecute(String result)
super.onPostExecute(result);
Log.e("TAG", result);
【问题讨论】:
为什么你对 fetchdata 和 senddata 使用相同的 api url? 尝试检查 Postman 中的 senddata api。我得到 404 状态码,所以可能是后端有问题 是的,我在 fetchdata(从 api 获取数据)和 senddata(在同一个 api 中编辑数据)中使用相同的 api,并且我们需要自己的服务器进行编辑 【参考方案1】:此 api 不接受其 url 后面的任何参数。 这是一个 get 方法 Api url 而不是 post 方法。尝试在 postman 的 post 方法中运行它,它会报错。 如果你在 get 方法中运行,它会产生相同的输出,即使你在 url 之后添加一些东西:-“https://api.myjson.com/bins/1854yb”
【讨论】:
【参考方案2】:我认为您在创建 api 时对 myJson 有一些问题。如果你是 android 的初学者,你也可以试试Link for ready made Api for Android
他们创建了不同类型的 API 来理解 json 概念。
还可以获取有关 PostMan Link for postman 的一些更新
【讨论】:
以上是关于如何从 json(url) 解析数据并将数据发送到 url的主要内容,如果未能解决你的问题,请参考以下文章
如何拆分/解析 JSON 数据并将其保存到 SQL 服务器中?
如何在 Swift 3 中解析来自 URL 的 JSON 数据
如何从 url 获取 json 数据并将其保存到 const 变量 [TypeScript]
我想将图像 URL 作为 json 数据上传到我的 Angular 表单并将其发送到服务器。图片 URL 来自服务器响应