小编Raf*_*fag的帖子

在节点js中创建JSON数组

我需要在我的服务器中用节点js创建一个JSON字符串,以便在请求时发送给客户端.问题是这个JSON依赖于服务器中的可用数据,因此,JSON数组的大小总是不一样.我一整天都在尝试,但是虽然我觉得自己很接近,但我还是不明白.

示例查询如下:

json={"players":[
            {"name":"Messi", "goals":8},            
            {"name":"Ronaldo", "goals":22},
            {"name":"Costa", "goals":20},
            {"name":"Neymar", "goals":13},
            {"name":"Arabi", "goals":6},
            {"name":"Bale", "goals":3},
            {"name":"Toquero", "goals":0}]};
Run Code Online (Sandbox Code Playgroud)

我会通过以下方式将其发送到服务器:

res.contentType('application/json');
res.send(json);
Run Code Online (Sandbox Code Playgroud)

我想要的JSON数组创建它取决于一个名为'目标'的哈希,其中一个玩家名称是关键,而一些目标是值.因此,如果只有3个播放器,则JSON阵列只应具有此大小.

我一直在尝试在线创建JSON数组,如下所示:

result= "";
for(i in goals){
    result = result+ '{ name:' + i + ", goals:" + goals[i] + '},';
}
result= result.substring(0, result.length - 1); 
res.contentType('application/json');
res.send( { 'players': [ result]});
Run Code Online (Sandbox Code Playgroud)

但是,客户端只接收大小为1的json

Object {jugadores: Array[1]}
Run Code Online (Sandbox Code Playgroud)

jugadores:Array [1] 0:"{nombre:Messi,goles:8},{nombre:Ronaldo,goles:16},{nombre:Costa,goles:10},{nombre:Toquero,goles:0},{ nombre:Arabi,goles:2},{nombre:Bale,goles:10},{nombre:Neymar,goles:8}"长度:1

在此先感谢,我真的很挣钱:(

编辑:我现在尝试使用stringy做这个,但没有运气.我做错了什么?

result= "players:[";
for(i in goals){
    result= result+ '{ name:' + i + ", goals:" + goals[i] + …
Run Code Online (Sandbox Code Playgroud)

javascript arrays json node.js

12
推荐指数
2
解决办法
12万
查看次数

在Youtube Player支持片段中苦苦挣扎

我试图在片段中使用Youtube播放器支持片段,但应用程序总是崩溃(NullPointerException),我无法找到任何类似的帖子来修复它.

我有导入导入android.support.v4.app.Fragment所以不应该是问题.

这是我的片段类的样子:

package com.example.activitydetector;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerFragment;
import com.google.android.youtube.player.YouTubePlayerSupportFragment;
import com.google.android.youtube.player.YouTubePlayerView;
import systemManager.SystemManager;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;

public class GuidelinesFragment extends YouTubePlayerSupportFragment {

    SystemManager sm;
    YouTubePlayerView youTubeView; 
    String URL_VIDEO = "CaA-k1l0xa4";
    String KEY_DEVELOPER = "AIzaSyBIIs0u0NXhsZguv8nCNvSzUmflTt7K1Ek";

    public GuidelinesFragment() {
        super();
        // TODO Auto-generated constructor stub
    }

    public void onCreate(Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

youtube android youtube-api android-fragments android-youtube-api

9
推荐指数
2
解决办法
2万
查看次数

使用 Ktor 进行身份验证测试端点

我正在努力为处于身份验证(令牌)下的端点编写测试。特别是,在编写我的测试时,尽管提供了作为登录请求的一部分收到的令牌,但我无法将登录请求与我的第二个请求链接起来。

登录端点.kt

const val LOGIN_ENDPOINT = "$API_VERSION/login"

@Location(LOGIN_ENDPOINT)
class Login

fun Route.loginEndpoint(patientsRepository: Repository<Patient>, authProvider: AuthProvider) {
    post<Login> {
        val params = call.receive<Parameters>()
        val userId = params["id"] ?: return@post call.respond(status = HttpStatusCode.BadRequest, message = "Missing user id")

        val user = patientsRepository.get(userId)
        if (user != null) {
            val token = authProvider.generateToken(user.id!!)
            call.respond(TextContent("{ \"token\": \"$token\" }", ContentType.Application.Json))
        } else {
            call.respond(status = HttpStatusCode.NotFound, message = "User with id $userId does not exist")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

LoginEndpointTest.kt(通过,一切顺利)

    @Test
    fun `given user exists then …
Run Code Online (Sandbox Code Playgroud)

kotlin ktor

6
推荐指数
0
解决办法
607
查看次数

使用GridLayout编辑屏幕外的文本

我有以下布局,其中编辑文本显然没有任何理由离开屏幕.我试图找到类似的问题,但我不能.它应该是一个简单的,但我已经尝试了许多没有运气的东西.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <GridLayout
        android:id="@+id/gridLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:columnCount="2"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/titleTextView"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:paddingBottom="10dp"
            android:paddingTop="10dp"
            android:text="dsgsdgsd"
            android:textColor="@color/red"
            android:textStyle="bold" />

        <View
            android:layout_width="fill_parent"
            android:layout_height="2dip"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:background="@color/red" />

        <TextView
            android:id="@+id/textTitle"
            android:layout_gravity="left"
            android:background="#ffffff"
            android:paddingLeft="15dp"
            android:text="Title"
            android:textColor="@color/grey" />

        <EditText
            android:id="@+id/editTitle"
            android:layout_gravity="right"
            android:inputType="text">
        </EditText>

        <View
            android:layout_height="1dip"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:background="#E6E6E6" />

        <TextView
            android:id="@+id/textCategory"
            android:layout_gravity="left"
            android:background="#ffffff"
            android:gravity="left"
            android:paddingLeft="15dp"
            android:text="Category"
            android:textColor="@color/grey" />

        <EditText
            android:id="@+id/editCategory"
            android:layout_width="225dp"
            android:layout_gravity="right"
            android:inputType="text" />            

        <Button
            android:id="@+id/btnCreateAccount"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="#ffffff"
            android:onClick="createExpense"
            android:text="Done"
            android:textColor="@color/red" /> …
Run Code Online (Sandbox Code Playgroud)

android textfield android-layout android-gridlayout

5
推荐指数
1
解决办法
3798
查看次数

使用 Youtube Player API 播放不同的 YouTube 视频

I\xc2\xb4m 使用适用于 Android 的 Youtube Player API 来播放视频,选择其中之一listview(视频之前已解析 json 等)。当我只能播放第一个视频时出现问题listview我选择的第一个视频时,问题就出现了,因为当我单击 listView 的不同元素时,播放器视图不会改变。这是重要的代码:

\n\n
 lista.setOnItemClickListener(new OnItemClickListener(){\n\n            @Override\n            public void onItemClick(AdapterView<?> pariente, View view, \n                    int posicion, long id) {\n\n                Video chosen = (Video)pariente.getItemAtPosition(posicion); \n                String urlVideo = chosen.getUrl();\n                String aux = getYoutubeVideoId(urlVideo);\n                URL_VIDEO = aux;\n\n                youTubeView.initialize(KEY_DEVELOPER, new YouTubePlayer.OnInitializedListener() {\n\n                    @Override\n                    public void onInitializationFailure(Provider arg0,\n                            YouTubeInitializationResult arg1) {\n                        // TODO Auto-generated method stub\n                        Log.d("DEPURANDO: ERROR AL VISUALIZAR", URL_VIDEO);\n\n                    }\n\n                    @Override\n                    public void onInitializationSuccess(Provider arg0,\n                            YouTubePlayer player, boolean wasRestored) …
Run Code Online (Sandbox Code Playgroud)

android youtube-api android-youtube-api

4
推荐指数
1
解决办法
9493
查看次数

如果没有@ Provide-annotated方法,则无法提供Dagger 2

我知道有很多类似的问题,但我仍然无法找到解决问题的方法,而且在这个阶段,我没有想法.我有以下设置:

  • 应用程序模块/组件:仅用于上下文和Application对象.
  • 网络模块/组件:改造客户端
  • 城市模块/组件:在MVP屏幕中注入依赖关系的模块/组件.我想在片段中注入Presenter和Interactor.
  • PlaceRequests:改造界面

这是代码的样子:

ApplicationModule.java

@Module
public class ApplicationModule {
    private Application mApp;

    public ApplicationModule(Application app) {
        mApp = app;
    }

    @Provides
    @Singleton
    public Application provideApplication() {
        return mApp;
    }

    @Provides
    @Singleton
    Context provideApplicationContext() {
        return mApp.getApplicationContext();
    }
}
Run Code Online (Sandbox Code Playgroud)

ApplicationComponent.java

@Singleton
@Component(modules = {ApplicationModule.class})
public interface ApplicationComponent {
    Application application();
    Context getContext();
}
Run Code Online (Sandbox Code Playgroud)

NetModule.java

@Module
public class NetModule {

    String mBaseUrl;

    public NetModule(String baseUrl) {
        this.mBaseUrl = baseUrl;
    }

    @Provides
    @Singleton
    SharedPreferences providesSharedPreferences(Application application) {
        return PreferenceManager.getDefaultSharedPreferences(application);
    } …
Run Code Online (Sandbox Code Playgroud)

java android dependency-injection dagger dagger-2

3
推荐指数
1
解决办法
2922
查看次数