【问题标题】:how can i parsing json string in android我如何在android中解析json字符串
【发布时间】:2016-10-02 01:44:59
【问题描述】:
 <?php 

if($_SERVER['REQUEST_METHOD']=='GET'){

    $id  = $_GET['id'];

    require_once('dbConnect.php');

    $sql = "SELECT image FROM images WHERE id = '".$id."'";

    $r = mysqli_query($con,$sql);

    $res = mysqli_fetch_array($r);

    $result = array();


    array_push($result,array(

    "image"=>base64_encode($res['image'])
    )
);

    echo json_encode(array("result"=>$result));

    mysqli_close($con);

}

这是我在base54 json中编码图像的php代码

这给了我这个结果。如何在 Android 中解析这个 JSON 字符串?

{"result":[{"image":"iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA\/wD\/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QsBFCQL0A3ApwAAAgZJREFUaN7t2cGOqjAYBeCa3JA41eJqTPRRHHkCHhdyZwuCr+Gapc3IJNJ4ZqOGuVdNW2n\/TjJnTQrfgtL\/wNhvfkgAvAHIAXDi55gAyACsrBBKqQMAdF1XU2EATM73h1LqwwjTR1xCgekjLjk\/18oKQYEBwP9FaGMArO4hepjKNeYRQgvTNM0WGnGJ0UFc0jRNfXOROI7fy7IEFcYEURQF4jj+e28tLoSoKTCmCCFExRh7eG\/vGBcI7xiXCG+YM6JyiXCO8YlwhqFADI6hRAyGCQHxNCYkxDOY19AQVpjT6fSpi5hOpxtfCCuMAeKFYoDjQoi6KIofjehjKltMKIinMKEhrpjlcrlt21YL0bYtFovFdkjEn4HmCRyPRxZFkdb14\/GY7XY7RFHERqNRMP0XV0ptbN4RpVQJ4CUIhO7HLljMEIgeZkOCMUHobgDeMaYHwPl8\/qm7NXvDWJ5iX02+M84xTx7FeRCYgeYJWszAQxENxtFkZ4PhoSGsMNYloKcZmwshKmcloI8a03kJ6BnhBkOEGB7Tdd07cWVjirn9oydN062Ukrp30sJIKZGmaX1vkVWSJId7mLIsfZVnDzFSSqzX6wNj7OFv6rdbmDOi9lie8dls9h9GF3ETQ4C4ZNLH7Pd7I8Q3TJ7nVIhvmCzLkCTJhyniimGM5YSIK4YxltkifkOVL0ERXyYdwunCAAAAAElFTkSuQmCC"}]}

【问题讨论】:

  • 这将对您有所帮助。 codex2android.blogspot.in/2015/11/…
  • "如何在 Android 中解析这个 JSON 字符串?"好吧,有很多教程......你不觉得这个问题太宽泛了吗?

标签: php android json phpmyadmin


【解决方案1】:

试试这个

   public String GetResult(String json){
        JsonObject obj = new JsonObject(json)

        JSONArray arr = obj.optJSONArray("result");
        if (arr.length() > 0) {
            return aar.optJSONObject(0).optString("image");
        }
        return null;
    }

【讨论】:

  • 请问这是什么类型的图片
  • 抱歉,这是 aar,不是图片
【解决方案2】:
that the java side
package com.example.test6;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Base64;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;


public class MainActivity extends Activity {
     JSONParser jsonParser=new JSONParser();
    private static String url_create_product = "http://192.168.43.64/test6/im.php";
    //JSON Node names
    private static final String TAG_SUCCESS = "success";
    Button btn;
    ImageView img;
    EditText et;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button) findViewById(R.id.btnim);
        img=(ImageView) findViewById(R.id.imv);
        et=(EditText) findViewById(R.id.ed1);


        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                im i=new im();
                i.execute();

            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


    class im extends AsyncTask<String, String, Bitmap>{

        @Override
        protected Bitmap doInBackground(String... params) {
            // TODO Auto-generated method stub
             String id = et.getText().toString();

             List params1 = new ArrayList();
             params1.add(new BasicNameValuePair("id", id));


             JSONObject json = jsonParser.makeHttpRequest(url_create_product,
                     "POST", params1);

             JSONObject object = null;
             System.out.println(object);
             String image = json.optString("image");
             System.out.println(image);
             if(image!=null){
                byte[] qrimage = Base64.decode(image.getBytes(),0);

                System.out.println(qrimage);
     Bitmap bmp = BitmapFactory.decodeByteArray(qrimage, 0,qrimage.length);


                return bmp;


             }




            return null;
        }

        @Override
        protected void onPostExecute(Bitmap bmp) {
            // TODO Auto-generated method stub
            super.onPostExecute(bmp);
              img.setImageBitmap(bmp);
        }

    }
}

that the PHP side:

    <?php 
    require_once('dbConnect.php');
    $id  = $_POST['id'];

    $sql = "SELECT image FROM images WHERE id = '".$id."'";

    $r = mysqli_query($con,$sql);
    $row = mysqli_fetch_assoc($r);
    foreach($row as $key => $value){
    $json[$key] = base64_encode($value);
    }
    header('Content-type: application/json');
    echo json_encode($json);
    mysqli_close($con);?>



that work perfecty and hope that can help you 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多