2017-02-14 22 views
0

私のシステムの制限のために文字列形式のバイト配列を持つJSONオブジェクトを受け取っています。それは何かをテストするためだけです。バイト形式の文字列をバイト配列に変換するandroid

"[1,2,3,4]"のような文字列をアンドロイドで取得し、それを変換してbyte [] data = [1、2、3、4]にします。

getBytesを使用すると、明らかに私が探しているものが返されず、ここで何ができるのか分かりません。ヘルプは非常に高く評価されるだろう!

編集:文字列を解析して、整数の各配列を取得しました。それを簡単にバイト配列に入れる方法はありますか?

おかげ

+0

をここでアンドロイドの話をしています。あなたがJsonの解析に役立つアンドロイドのorg.jsonパッケージに精通していることを願っていますか?より明確にすることでより良い、よりきれいな回答が得られます – ShayHaned

+0

こんにちは、JSONの部分は本当に私が問題を抱えているわけではありません。 JSONがバイト配列を送信する方法がわからない限り。私の質問は、ちょうど[1,2,3,4]のようなバイト配列の形式を持つ文字列を実際のバイト配列[1,2,3,4] – lhbortho

+0

に変換することです。あなたが{"strNotBytes":["1"、 "2"、 "3"、 "4"}}のようなものを持っていて、これをバイト配列またはバイト出力ストリームに変換すると思います間違っていません? – ShayHaned

答えて

2

このお試しください:私は**、コード内であなたのJSON形式の構造を指定し、以来してくださいその中にバイト配列を持つJSONオブジェクトを受信して​​います**

private static byte[] doConvert(String inStr) { 
    String opStr = inStr.substring(1); 
    opStr = opStr.substring(0, opStr.length()-1); 
    int val; 
    String[] arr = opStr.split("[,]"); 
    byte[] retVal = new byte[arr.length]; 
    for (int i=0; i<arr.length; i++) { 
     opStr = arr[i].trim(); 
     try { 
      val = Integer.parseInt(opStr); 
     } catch (Exception e) { 
      System.out.println("bad input at item #"+i+": "+opStr); 
      return null; 
     } 
     if (val > 255) { 
      System.out.println("bad input value at item #"+i+": "+val+" > 255"); 
      return null;     
     } 
     retVal[i] = (byte) val; 
    } 
    return retVal; 
} 
+0

に変換することを意味します。こんにちは、これは間違いなく私が必要とするものに近づいています。私はすでに類似しているが、parseIntの代わりにInteger.valueOf()を使って文字列を整数に変換していた。たぶんそれは問題を引き起こしていたでしょう。私が今得ている問題は、文字列[2,182,28,82,251,154,70,149]を取得すると、それをバイトに変換するときです。[2、-74、28,82、-5、-102、 70、-107]。私はこれが署名付きのバイトと無関係のバイトと関係していると推測しています。これを変える方法はありますか?これまでのところ助けてくれてありがとう! – lhbortho

+0

実際には心配しないでください。後でそれらを変換するのに適切な値にビットが必要なだけなので、署名付きまたは署名なしで使用しているかどうかは本当に気にしません。 – lhbortho

関連する問題