如何从JSON字符串反序列化List <float>?

时间:2019-12-07 16:49:59

标签: c# json

这是我的JSON字符串,仅表示一个简单的列表: test

这是我的反序列化的C#代码:

Options

我不知道为什么我的AccelerationList为空!有什么建议吗?

2 个答案:

答案 0 :(得分:1)

使用Newtonsoft.Json,可以使其干净

public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) {

    holder.tvItem.setText(itemList.get(position).getmTitle());
    Picasso.get().load(itemList.get(position).geturl()).into(holder.imgFlag);
    final ModelClass model= itemList.get(position);
    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Activity activity = ((AppCompatActivity)mContext);
            Fragment fragment = activity.getSupportFragmentManager().findFragmentById(R.id.fragment);
            // Check if the fragment already exists, if so, just update it
            if (fragment != null) {
                DataFragment dataFragment = (DataFragment) fragment;
                dataFragment.replaceData(model);
            }
            else { // Create new instance
                DataFragment dataFragment= new DataFragment();
                activity.getSupportFragmentManager()
                        .beginTransaction()
                        .replace(R.id.fragment,dataFragment)
                        .commit();
                Bundle bundle = new Bundle();
                bundle.putSerializable("model", model);
                dataFragment.setArguments(bundle);
            }
        });
    }
}

您将获得字符串中的float列表,因此我们需要在提取后将字符串转换为list

答案 1 :(得分:1)

我相信您拥有除1期以外的大部分内容。

您正在尝试将整个内容(json字符串)转换为List。您需要正确地转换json对象,以获取AccelerationsList的值,然后正确地转换为浮动列表的字符串。

Write-Host

输出:

string jsonContent = @"{""accelerationsList"":""[-3.1769, 3.304, 6.3455997, 3.1701]""}";
var stringRepOfArray = JObject.Parse(jsonContent)["accelerationsList"].ToString();

List<float> floatList = new JavaScriptSerializer().Deserialize<List<float>>(stringRepOfArray);