1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      怎么在android中讀寫Json文件-創(chuàng)新互聯(lián)

      怎么在android中讀寫Json文件?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

      成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的西和網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

      首先在SD卡上的讀寫權(quán)限是一定要申請(qǐng)的。那么還是老辦法,在 AndroidManifest.xml 文件中添加

      這在android 6.0 以下的系統(tǒng)就足夠了。6.0及以上的更新的系統(tǒng),在代碼中需要申請(qǐng)SD卡的讀寫權(quán)限。

      先來構(gòu)建界面,兩個(gè)按鈕一個(gè)文字顯示組件。

      
      
      
        

      怎么在android中讀寫Json文件

      默認(rèn)界面

      在onCreate方法中增加按鈕動(dòng)作

      // 獨(dú)立寫Json文件
          btnSingleWJson.setOnClickListener {
      }
      // 獨(dú)立讀Json文件
          btnSingleRJson.setOnClickListener{
      }

      寫入Json文件要先判斷SD卡的讀寫權(quán)限,沒權(quán)限要申請(qǐng)權(quán)限,如果有權(quán)限才執(zhí)行寫操作。

      // 獨(dú)立寫Json文件
          btnSingleWJson.setOnClickListener {
            // 判斷有無寫SD卡的權(quán)限
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
              //申請(qǐng)寫 SD 卡的權(quán)限
              ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), COFOX_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE)
            } else {
              saveSingleJson()
            }
          }

      這其中的saveSingleJson()方法是具體的寫Json的實(shí)現(xiàn)。

      fun saveSingleJson(){
          Toast.makeText(this, "保存獨(dú)立Json文件", Toast.LENGTH_LONG).show()
          //打開要寫入的json文件
          val fos = FileOutputStream(jsonFile)
          //json數(shù)據(jù)
          val products = arrayListOf()
          products.add(Product("0001", "微服務(wù)核心服務(wù)端"))
          products.add(Product("0002", "平臺(tái)管理android端"))
          products.add(Product("0003", "平臺(tái)管理web端"))
          products.add(Product("0004", "企業(yè)用戶android端"))
          products.add(Product("0005", "終端用戶wx/android/web端"))
          products.add(Product("0006", "android全功能端"))
          products.add(Product("0007", "明月端"))
          //創(chuàng)建JsonWrite對(duì)象
          val writer = JsonWriter(OutputStreamWriter(fos, "utf-8"))
          writer.setIndent("  ")
          writer.beginArray()
          for (product in products){
            writer.beginObject()
            writer.name("id").value(product.id)
            writer.name("name").value(product.name)
            writer.endObject()
          }
          writer.endArray()
          writer.close()
        }

      注意writer.close()不能丟失,不然你就寫不到文件里了。

      代碼中的Json文件保存位置存放在一個(gè)變量中

      val jsonFile = "/sdcard/cofoxtest.json"

      讀取Json文件,一個(gè)對(duì)列表的記錄進(jìn)行循環(huán)讀取,一個(gè)是對(duì)記錄內(nèi)的字段循環(huán)讀取,兩個(gè)循環(huán)嵌套。

      // 獨(dú)立讀Json文件
          btnSingleRJson.setOnClickListener {
            val fis = FileInputStream(jsonFile)
            var reader = JsonReader(InputStreamReader(fis,"utf-8"))
            val products = ArrayList()
            reader.beginArray()
            while (reader.hasNext()){
              var id = ""
              var name = ""
              reader.beginObject()
              while (reader.hasNext()) {
                var field = reader.nextName()
                if (field.equals("id")){
                  id = reader.nextString()
                }else if (field.equals("name")){
                  name = reader.nextString()
                }else{
                  reader.skipValue()
                }
              }
              reader.endObject()
              products.add(Product(id, name))
            }
            reader.endArray()
            reader.close()
      
            if (products != null) {
              var result = ""
              for (product in products) {
                result += "id:" + product.id + " name:" + product.name + "\n"
                ttvwJson.setText(result)
              }
            }
          }

      如果是高版本的android,第一次運(yùn)行,會(huì)對(duì)權(quán)限做一個(gè)判斷,根據(jù)操作人的權(quán)限賦予的選擇,有一個(gè)相應(yīng)的系統(tǒng)反應(yīng)。這就是權(quán)限選擇結(jié)果的一個(gè)方法重寫。如果同意了權(quán)限就寫入,如果不同意就顯示提示信息。

        override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) {
          when (requestCode) {
            COFOX_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE -> {
              if (grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                saveSingleJson()
              } else {
                Toast.makeText(this, "您拒絕了寫入", Toast.LENGTH_LONG).show()
              }
            }
          }
        }

      關(guān)于怎么在android中讀寫Json文件問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


      分享文章:怎么在android中讀寫Json文件-創(chuàng)新互聯(lián)
      網(wǎng)頁(yè)網(wǎng)址:http://www.ef60e0e.cn/article/ddjosj.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        潞西市| 旬阳县| 黄梅县| 循化| 巍山| 正蓝旗| 九江县| 黑龙江省| 富锦市| 怀远县| 仪征市| 湟源县| 宿松县| 察隅县| 榆树市| 东阿县| 武胜县| 壤塘县| 凤城市| 邵东县| 江永县| 招远市| 寿宁县| 昌黎县| 靖州| 清丰县| 视频| 渑池县| 安塞县| 英超| 绥中县| 尚义县| 连南| 荔浦县| 济南市| 承德市| 新邵县| 吴旗县| 天全县| 裕民县| 凤阳县|